2009-06-17 142 views
0

我知道這是有史以來最簡單的問題,但我似乎無法找到答案,我在黑暗中搜索,所以有一點幫助表示讚賞。我試圖在class ='song_artist'的節點中獲取文本。我有一個對父節點的引用,但無法訪問我正在尋找的文本。我的HTML看起來像這樣:遍歷與JavaScript的表DOM

<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大師在這裏?

回答

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 
+0

實際上,如果可能,$(「tr.song_artist」)會更快。 – 2009-06-17 14:41:45

1

在純JavaScript:

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

標準警告:使用javascript fram ework代替。