2010-08-04 56 views
3

我有如下一個HTML頁面:的jQuery遍歷div和獲得它的跨度細節

<div id="test1"> 
    <table> 
     <tr> 
      <td><span id="234">ABKO</span></td> 
     </tr> 
     <tr> 
      <td><span id="1234">ABKO2</span></td> 
     </tr> 
     <tr> 
      <td><span id="2634">ABKO3</span></td> 
     </tr> 
    </table>  
</div> 
<div id="test2"> 
    <table> 
     <tr> 
      <td><span id="233">ABKOw</span></td> 
     </tr> 
     <tr> 
      <td><span id="1236">ABKOc</span></td> 
     </tr> 
     <tr> 
      <td><span id="2635">ABKOv</span></td> 
     </tr> 
    </table>  
</div> 

我怎樣才能使用jQuery之間的所有跨度細節? 例如,如果我認爲第一個div = test1的話,我希望所有與他們的ID和文本 作爲 div的,索安 - > test1的 跨度=> ID 233 & & ABKO 跨度=> ID 1234 & & ABKO2 跨度=> ID 22634 & & ABKO3

+2

使用數字來啓動一個ID是無效的HTML。它必須以字母開頭。 – user113716 2010-08-04 17:23:03

回答

7

您可以通過所有的<span>元素,像這樣重複:

$('div span').each(function(){ 
    var $span = $(this); 

    var divId = $span.closest('div').attr('id'); 
    var spanId = $span.attr('id'); 
    var spanTxt = $span.text() 

    // do something with the above 
}); 

你可以看到它in action here

這是幹什麼建立一個嵌套在div中的span元素列表(CSS selectordiv span)。然後使用.each()方法遍歷此列表。

在每次迭代中$(this)指的是匹配的span元素。我們在$span變量中捕獲了一個參考,所以我們不會重新創建相同的jQuery對象。

然後,我們使用.closest()方法來查找與給定選擇器(div)匹配的量程的第一個祖先。這得到我們的父母div。

最後.attr().text()獲取ID屬性和文本值。

+1

用於jsfiddle上的演示 – 2010-08-04 17:30:13

5

您可以通過ID找到一個元素,如$('#test1')。您可以通過標籤$('span')$('div')查找元素。

如果你想找到所有屬於 「測試1」 的跨越:

$('#test1').find('span')

$('#test1 span')

可以遍歷元素的集合與each()

$('#test1').find('span').each(function() { 
    var id = this.id; 
    var value = $(this).html(); 
    // do whatever... 
}); 

希望你能從這裏解決其他問題。