2009-12-10 138 views
0

我有一个页面,其中包含嵌套div标记的几个图层。在8或9的divs内是表格。我如何迭代divs并选择我想要的特定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内的每个表格中的特定单元格获取值,尽管我希望每个表格都有相同的单元格。我会遍历这个还是只参考我想要的特定单元格?如果是,我该如何选择它们?

+0

文字我想这应该是针锋相对带领“参考桌和细胞位置” – GregH 2009-12-10 23:29:24

+0

任何反馈到我的答案?它不是做你想要的吗? – jitter 2009-12-12 23:56:17

回答

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

有点冗长,但我相信这检索第四<td>的第二<table>的第三<tr>内从第一<div>包含在#TheHouseDiv文本。

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

1

这给你所有你想要的td。 (如果你不明白的选择只是发表评论,我会解释它。

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

例如在循环遍历href S中<a>标签内这些td小号

$("div#TheHouseDiv > div > table td:not(:nth-child(1)):not(:nth-child(4)) a") 
    .each(function(i, ele) { 
     alert(ele.href); 
    } 
); 

如以环比<a>标签内这些td小号

$("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 
    } 
); 
+0

即时通讯不太确定,但我认为“>”只适用于ie,并且:第n孩子也不适用于某些浏览器。 – TeKapa 2009-12-11 09:12:27

+2

@TeKapa你是完全错误的。 jQuery在JavaScript中处理选择器,并且不受浏览器功能的限制。这就是为什么我们使用像jQuery这样的跨浏览器库,它处理各个浏览器的所有怪癖,并保证这个选择器在每个浏览器中的行为都相同。 – jitter 2009-12-11 09:38:31

+1

请删除这个评论,这是一个非常具有误导性的经验不足的读者 – jitter 2009-12-11 09:39:15