Аналог функции 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); }); } Если возможно напишите код с комментариями!:( :( :( |
Херней страдаешь.
<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> |
Ты меня не правильно понял я имел в виду чтобы функция gt() работала примерно так:
document.gt('div').item(0).innerHTML = 'someText'; или document.getElementById('mid').gt('span').item(0) = 'someText'; |
Не трогай прототипы DOM-объектов. Зачем это нужно?
|
Для простоты и скорости в работе.
Когда в сайте нужно раз со 100 использовать функцию getElementsByTagName лучше написать её аналог |
насколько
document.gt('class') document.getElementById('id').gt('class') быстрее чем gt('class') gt('class', document.getElementById('id')) или тем более q('.class') q('#id .class') ? А вобще - подключи jQuery и не парься. |
danik Спасибо!
|
Часовой пояс GMT +3, время: 10:41. |