我有一个包含几层嵌套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中每个表中特定单元格的值,尽管我想要每个表中的相同单元格。我会迭代这个或只是引用我想要的特定单元格,如果是这样,我该如何选择它们?
答案 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')
来匹配第一个。