Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
childElementCount
. По-моему, было бы логичнее включить childElements
, аналог childNodes
, а у него уже можно и количество узнать.var t1 = new Date().getTime(), i = 100000, doc = document;
while(i--) doc.createElement('div');
t1 = new Date().getTime() - t1;
if(window.HTMLElement) {
HTMLElement.prototype.__defineGetter__("getter1", function(){});
HTMLElement.prototype.__defineGetter__("getter2", function(){});
HTMLElement.prototype.__defineGetter__("getter3", function(){});
HTMLElement.prototype.__defineGetter__("getter4", function(){});
HTMLElement.prototype.__defineGetter__("getter5", function(){});
}
else {
Object.defineProperty(Element.prototype, "getter1", {get: function(){}});
Object.defineProperty(Element.prototype, "getter2", {get: function(){}});
Object.defineProperty(Element.prototype, "getter3", {get: function(){}});
Object.defineProperty(Element.prototype, "getter4", {get: function(){}});
Object.defineProperty(Element.prototype, "getter5", {get: function(){}});
}
i = 100000;
var t2 = new Date().getTime();
while(i--) doc.createElement('div');
t2 = new Date().getTime() - t2;
document.title = t1 + ' / ' + t2;
Разницы в скорости не заметил :-)если нода изначально «пуста», то полетят ошибкиСпасибо, поправил.
'children' лучше выкинуть (не-стандарт, есть баги)Не сталкивался с проблемами при использовании children, можно подробнее?
упростить бы 'do-if-break-while', заодно из консоли сгинут уорнингиВообще я за то, чтобы пользоваться всей гибкостью языка, но тоже поправил :-)
строго (===) сравнивать 'typeof' не обязательноТак быстрее
всегда верно будет показывать факт наличия дочерних элементов, но не всегда правильно их количество.node.getElementsByTagName("*").length
Реализация интерфейса ElementTraversal