使用javascript DOM遍历表

时间:2009-06-17 14:31:31

标签: javascript dom

我知道这是有史以来最简单的问题,但我似乎无法找到答案而且我正在黑暗中搜索,所以我会感激一点帮助。我正在尝试在class ='song_artist'的节点中获取文本。我有一个父节点的引用,但只是无法找到我正在寻找的文本。我的HTML看起来像这样:

<tr id='0000moe2008-05-23d01t01_vbr' class='row-even'><td class='song_name'>Captain America<h3> (00:00)</h3></td><td class='song_artist'>moe.</td><td class='song_date'>2008-05-23</td><td class='song_location'>Jones Beach, VA</td></td><td class='song_extras'></td></tr>  
<tr id='00011-01_Rock_And_Roll_Part_2' class='row-odd'><td class='song_name'>Rock and Roll part 2<h3> (00:00)</h3></td><td class='song_artist'>Phish</td><td class='song_date'>1998-11-20</td><td class='song_location'>Jones Beach, VA</td></td><td class='song_extras'></td></tr>  
<tr id='00021-03_Quinn_The_Eskimo' class='row-even'><td class='song_name'>Quinn the Eskimo<h3> (00:00)</h3></td><td class='song_artist'>Phish</td><td class='song_date'>1998-11-20</td><td class='song_location'>Jones Beach, VA</td></td><td class='song_extras'></td></tr>  

就像我说的那样,我有一个<tr>的引用,但不能指向我正在寻找的<td>。我假设完整的参考文章看起来像:parent.firstChild.nextSibling.data但我不断得到各种各样的死胡同。这里有任何javascript专家吗?

2 个答案:

答案 0 :(得分:5)

你可以这样做:

var collection = document.getElementsByTagName( "td");
for( var i = 0; i < collection.length; ++i)
{
      if ( collection[i].getAttribute("class") === "whateveryouwant")
       {
       }
}

但是我的建议是使用像jquery这样的javascript框架切换,因为那时你只需要做的是:

var element = $( "td.song_artist") //here you get all element you are looking for

答案 1 :(得分:1)

纯粹的Javascript:

var elements = document.getElementsByClassName('song_artist')
for (var i=0; i<elements.length; i++){
    text = elements[i].innerHTML;
}

标准警告:改为使用javascript框架。