Xwab
Форумыnavigate_nextJavaScript

JS вызов функций
Сообщения
EmptyZero

Есть код:
function $(element) {
   if (typeof element == 'string') {
      var node = element.substr(0, 1);
      if (node === '#') {
         element = document.getElementById(element.substr(1, element.length));
      }
      else if (node === '.') {
         element = document.getElementsByClassName(element.substr(1, element.length));
      }
      else {
         element = document.getElementsByTagName(element);
      }
   }
   return (element && element != 'undefined') ? element : false;
}

$.html = function(element, str) {
   if (typeof str == 'string' || typeof str == 'number') {
      $(element).innerHTML = str;
   }
}
В данном случае при вызове $.html('#content', 'some text'); в элемент с id=content выведет "some text".
Как преобразовать код выше, чтобы при вызове $('#content').html('some text'); выполняло тоже самое действие?

29 Сен 2012, 6:12
ma3uk

В фунции $ нужно возвращать this (return this).

29 Сен 2012, 8:22
EmptyZero

ma3uk, и что с этим потом делать? Никак не соображу...
добавлено спустя 2 минуты:
Может... в функции $ написать, что-то вроде:
this.html = function(str) {
    this.innerHTML = str;
}

29 Сен 2012, 9:02
Sandr

EmptyZero, свой фреймворк пишешь?)

29 Сен 2012, 9:16
EmptyZero

Sandr, да нет. Просто для себя, чтобы с элементами работать было удобно

29 Сен 2012, 9:20
ma3uk

function $(element) {
if (typeof element == 'string') {
var node = element.substr(0, 1);
if (node === '#') {
this.element = document.getElementById(element.substr(1, element.length));
}
else if (node === '.') {
this.element = document.getElementsByClassName(element.substr(1, element.length));
}
else {
this.element = document.getElementsByTagName(element);
}
}
return this
}

29 Сен 2012, 9:22
EmptyZero

это я понял. А вот далее...
Я сейчас не возле компа, еду домой в поезде (ничего похимичить не могу)
добавлено спустя 3 часа:
Добрался до компа, и... ВСЕ РАБОТАЕТ!!!!
ma3uk, спасибо за подсказку (return this)

29 Сен 2012, 13:02
Ответить на тему