phpスクリプトから動的に生成されたhtmlがいくつかあります。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";
私はこのようなdomにアクセスしようとする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()
ので、どのようにすべてのテキストノードを取得するのですか?