|
|
|
| Здравствуйте.
<div id="bd03">
<div id="a4575_v" class="a_node" onclick="a_onClick(this.id)">
<p> jjj </p>
<img ....>
</div>
<div id="a4570_v" class="a_node" onclick="a_onClick(this.id)">
<p> jjj </p>
<img ....>
</div>
<div id="a4569_v" class="a_node" onclick="a_onClick(this.id)">
<p> jjj </p>
<img ....>
</div>
</div>
|
function B_onLoad() {
var e = document.getElementById('bd03');
e.normalize();
e_ch = e.childNodes;
for (var i = 0; i < e_ch.length; i++) {
alert(e_ch[i]);
}
}
|
выводит
[object Text]
[object HTMLDivElement]
[object Text]
[object HTMLDivElement]
[object Text]
[object HTMLDivElement]
[object Text]
|
вопрос: откуда текстовые узлы?? :О
и вроде бы e.normalize(); должно пустые текстовые узлы удалять? | |
|
|
|
|
|
|
|
для: btr
(01.02.2013 в 23:26)
| | метод ТЕГ.normalize () - он ничего не удаляет
он как бы "сериализует" написанный вами HTML-код внутри ТЕГА
преобразуя его в тот вид, который бы вам вернул ТЕГ.innerHTML
например,
напишете вы в коде
<SpAn>©— </sPaN>
браузер FireFox изменит это дело на
<span>©— </span>
т.е. сделает одинаковым нижним регистр для тегов,
копирайт и длинное тире преобразует из ASCII-кодов в символы,
а ASCII-код символа неразрывного пробела изменит на мнемоническое имя
|
[а другие браузеры - как-нить по-другому сделают, ибо стандарта для сериализации HTML-кода не существует]
вместо ТЕГ.normalize () с тем же КОНЕЧНЫМ результатом можно написать ТЕГ.innerHTML = ТЕГ.innerHTML;
однако, такая запись - она много медленнее исполнится, чем ТЕГ.normalize (),
потому что будут перезагружены все объекты (браузер заново "потянет" с сервера картинки; вернет начальные значения полям ввода, которые юзер уже мог изменить...)
-------
что до текстовых нод, то от них вы сможете избавиться,
прописав свой HTML-код следующим образом:
<div id="bd03"
><div id="a4575_v" class="a_node" onclick="a_onClick(this.id)">
<p> jjj </p>
<img ....>
</div
><div id="a4570_v" class="a_node" onclick="a_onClick(this.id)">
<p> jjj </p>
<img ....>
</div
><div id="a4569_v" class="a_node" onclick="a_onClick(this.id)">
<p> jjj </p>
<img ....>
</div
></div>
|
либо вместо e.childNodes используйте коллекцию e.children - последняя возвращает только HTML-элементы | |
|
|
|
|
|
|
|
для: ЯСА
(02.02.2013 в 00:18)
| | большое спасибо | |
|
|
|