迭代嵌套div中的表行

时间:2009-12-10 23:15:58

标签: javascript jquery

我有一个包含几层嵌套div标签的页面。在8或9的div中是表。如何遍历div并选择我想要的特定div,然后遍历每个div中嵌入的表格(一行)中的单元格?以下是我想要迭代的页面的代表性示例。

<div id="TheHouseDiv" class="catbox_m">
  <div class="Room1Div">
     <table width="900" border="0">
       <tbody>
         <tr>
           <td><a href="/blah/blah1.html">I don't care about this value</a></td>
           <td><a href="/blah/blah2.html">I WANT THIS VALUE 1!</a></td>
           <td><a href="/blah/blah3.html">I WANT THIS VALUE TOO 2!</a></td>
           <td><a href="/blah/blah4.html">Another cell I don't want</a></td>
           <td><a href="/blah/blah5.html">THIS CELL I WANT ALSO</a></td>
         <tr>
       </tbody>
     </table>
     <table width="900" border="0">
       <tbody>
         <tr>
           <td><a href="/blah/blah1.html">Ignore this value in the second table</a></td>
           <td><a href="/blah/blah2.html">I WANT THIS VALUE</a></td>
           <td><a href="/blah/blah3.html">I WANT THIS VALUE TOO</a></td>
           <td><a href="/blah/blah4.html">Ignore this content</a></td>
           <td><a href="/blah/blah5.html">GET THIS CELL VALUE</a></td>
         <tr>
       </tbody>
     </table>
   </div>
   <div class="Room2Div">
     <table width="900" border="0">
       <tbody>
         <tr>
           <td><a href="/blah/blah1.html">I don't care about this value</a></td>
           <td><a href="/blah/blah2.html">I WANT THIS VALUE 1!</a></td>
           <td><a href="/blah/blah3.html">I WANT THIS VALUE TOO 2!</a></td>
           <td><a href="/blah/blah4.html">Another cell I don't want</a></td>
...

你明白了。所以每个div中有一个表和多个div。实际上有8到10个div。没有表或单元格有ID,所以我需要在位置上引用。但是我不想要所有的单元格,也不需要所有的表格。我只想要每个div中每个表中特定单元格的值,尽管我想要每个表中的相同单元格。我会迭代这个或只是引用我想要的特定单元格,如果是这样,我该如何选择它们?

2 个答案:

答案 0 :(得分:1)

这为您提供了所需的所有td个。 (如果你不理解选择器只是发表评论,我会解释它。

$("div#TheHouseDiv > div > table td:not(:nth-child(1)):not(:nth-child(4))")

e.g。循环遍历href<a>td标记的$("div#TheHouseDiv > div > table td:not(:nth-child(1)):not(:nth-child(4)) a") .each(function(i, ele) { alert(ele.href); } );

<a>

e.g。循环遍历这些td s

$("div#TheHouseDiv > div > table td:not(:nth-child(1)):not(:nth-child(4)) a") .each(function(i, ele) { alert($(ele).text()); //or ele.innerHTML if no nasty is in the <a> tags } ); 标记的文本
{{1}}

答案 1 :(得分:0)

$('#TheHouseDiv div').eq(1).find('table').eq(2).find('tr').eq(3).find('td').eq(4).text()

有点冗长,但我相信这会从{<td>中包含的第一个<tr>中检索第二个<table>的第<div>内的第#TheHouseDiv个文本。 1}}。

您还可以使用快捷方式.find('tr:first')来匹配第一个。