Comments 14
Только мне кажется, что IE здесь поступает логичнее, чем стандарт?
Вы не одиноки в своём мнении. Некоторые тоже считают, что не имеет смысла веделять в отдельные узлы то, что при рендеринге всё равно не отображается.
Однако при рендеринге может много чего не отображаться, что является вполне себе тегами. Видимость, имхо, не фактор.
Не отображается? А если h1 и p инлайновые, тоже не отображается? Или дом дерево будет генерироваться в зависимости от css?
Полностью с вами согласен.
На самом деле, если следовать стандарту, то на первый попавшийся элемент завязываться плохо, надо проверить, что мы получили (nodeType или nodeType + nodeName), и в случае чего перейти к следующему, nextSibling не такой уж дорогой (и в большинстве случаев только один будет).
Разметка может поменяться, и все накроется.
Разметка может поменяться, и все накроется.
Element.prototype.getFirstChildElement = function() { var result = this.firstChild; while( result != null && result.nodeType != document.ELEMENT_NODE ) { result = result.nextSibling; } return result; } alert( document.getElementsByTagName('div')[0].getFirstChildElement().tagName ); // неплохо на null проверить
когда только учил этого тоже очень не хватало
krook.org/jsdom/
krook.org/jsdom/
мне казалось вместо tagName правильнее использовать nodeName.
Sign up to leave a comment.
Пустые текстовые узлы в Internet Explorer'е