У меня есть некоторые динамически генерируемые HTML из PHP-скрипта. PHP-код выглядит так
echo "<div id='categories'>\n";
foreach($category as $k => $v)
{
echo "<div class='category'>\n";
echo "<div id=\"$k\" class='cat_name'\n>$k</div>\n";
echo "<div id=\"$k".'_link"'." class='cat_link'>\n<a href=$v>Link</a>\n</div>\n";
echo "</div>\n";
}
echo "</div>\n";
У меня есть файл JavaScript, который пытается получить доступ к домену, как это
var categories=document.getElementById('categories').childNodes;
for(i=0;i<categories.length;i++)
{
var link=categories[i].childNodes[1].childNodes[0].attributes['href'];
..
...
..
теперь это не работает должным образом, потому что в html есть текстовые узлы.
когда я использовал firebug console
, чтобы попробовать это
document.getElementById('categories').childNodes[0].nodeType; // displays 3
отображает 3
, что означает, что узел является text node
.
я попытался добавить document.normalize();
в window.onload
, как это
window.onload=function() {
document.normalize();
var categories=document.getElementById('categories').childNodes;
...
...
но текстовые узлы остаются в html. Как я могу удалить все текстовые узлы. Теперь я не думаю, что есть какой-либо метод, например getElementByType()
, так как мне получить все текстовые узлы.