Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.06.2013, 18:06
Интересующийся
Отправить личное сообщение для Михаил1 Посмотреть профиль Найти все сообщения от Михаил1
 
Регистрация: 24.02.2012
Сообщений: 14

Аналог функции getElementsByTagName
Подскажите пожалуйста как написать аналог функции getElementsByTagName?
Я хочу вместо getElementsByTagName() использовать сокращенный вариант например gt().
Возможно ли это сделать кроссбраузерно?

В нете нашел пример для outerHTML но как им пользоваться незнаю.
if (typeof(HTMLElement) != "undefined") {
    var _emptyTags = {
       "IMG": true,
       "BR": true,
       "INPUT": true,
       "META": true,
       "LINK": true,
       "PARAM": true,
       "HR": true
    };
    HTMLElement.prototype.__defineGetter__("outerHTML", function () {
       var attrs = this.attributes;
       var str = "<" + this.tagName;
       for (var i = 0; i < attrs.length; i++)
          str += " " + attrs[ i ].name + "=\"" + attrs[ i ].value + "\"";
       if (_emptyTags[this.tagName])
          return str + ">";
       return str + ">" + this.innerHTML + "</" + this.tagName + ">";
    });
    HTMLElement.prototype.__defineSetter__("outerHTML", function (sHTML) {
       var r = this.ownerDocument.createRange();
       r.setStartBefore(this);
       var df = r.createContextualFragment(sHTML);
       this.parentNode.replaceChild(df, this);
    });
}


Если возможно напишите код с комментариями!
Ответить с цитированием
  #2 (permalink)  
Старый 12.06.2013, 18:15
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Херней страдаешь.

<div></div>
<div></div>
<div><span></span><span></span></div>

<script>
function query(selector, context) {
    return (context || document).querySelectorAll(selector);
}

var divs =  query('div');
alert (divs.length);

var spans = query('span', divs[2]);
alert (spans.length);
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 12.06.2013, 18:25
Интересующийся
Отправить личное сообщение для Михаил1 Посмотреть профиль Найти все сообщения от Михаил1
 
Регистрация: 24.02.2012
Сообщений: 14

Ты меня не правильно понял я имел в виду чтобы функция gt() работала примерно так:
document.gt('div').item(0).innerHTML = 'someText';
или
document.getElementById('mid').gt('span').item(0) = 'someText';
Ответить с цитированием
  #4 (permalink)  
Старый 12.06.2013, 18:30
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Не трогай прототипы DOM-объектов. Зачем это нужно?
Ответить с цитированием
  #5 (permalink)  
Старый 12.06.2013, 18:33
Интересующийся
Отправить личное сообщение для Михаил1 Посмотреть профиль Найти все сообщения от Михаил1
 
Регистрация: 24.02.2012
Сообщений: 14

Для простоты и скорости в работе.
Когда в сайте нужно раз со 100 использовать функцию getElementsByTagName лучше написать её аналог
Ответить с цитированием
  #6 (permalink)  
Старый 12.06.2013, 19:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

насколько
document.gt('class')
document.getElementById('id').gt('class')

быстрее чем
gt('class')
gt('class', document.getElementById('id'))

или тем более
q('.class')
q('#id .class')

?
А вобще - подключи jQuery и не парься.
Ответить с цитированием
  #7 (permalink)  
Старый 12.06.2013, 23:32
Интересующийся
Отправить личное сообщение для Михаил1 Посмотреть профиль Найти все сообщения от Михаил1
 
Регистрация: 24.02.2012
Сообщений: 14

danik Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
аналог функции file_get_contents для локальной машины lord2kim Internet Explorer 3 27.11.2011 14:22
Есть ли в dojo аналог функции Ext.create? aristov Dojo toolkit 3 20.11.2011 23:48
Аналог php функции в JS ВэйДлин Общие вопросы Javascript 1 20.07.2011 01:03
Есть ли в JavaScript аналог функции exec() из php? lorddarkside Общие вопросы Javascript 3 22.12.2010 12:37
Есть ли на JavaScript аналог PHP функции include?) FirstFrost Общие вопросы Javascript 3 13.07.2010 10:13