我正在使用selectorgadget来帮助我选择文档中的元素。但是当我在jQuery上使用它时它不起作用。 nth-child选择器似乎不适合我。
<div id = "wrap">
<div class = "book">
<div class = "chapter">
<p class = "text">
<table>
<tbody>
<tr>
<td>Title</td>
<td>
<b>jQuery</b>
</td>
</tr>
</tbody>
</table>
<p>
</div>
</div>
</div>
HTML在上面。有很多书类。 div包装是将它们全部包装起来的包装器。选择器小工具说我用的时候:
$("#wrap tr:nth-child(1) b")
它应该选择带有<b>
标记的TD元素。所以它应该选择“jQuery”。
我试了一下,但没办法。我试过的时候:
var query = $("#wrap tr:nth-child(1) b").text();
alert(query);
浏览器发送没有文字的警报。当我尝试时:
var query = $("#wrap tr:nth-child(1) b").html();
alert(query);
浏览器发送NULL警报。
怎么了?
答案 0 :(得分:2)
我用FF 3.0.10,jQuery 1.3.2,greasemonkey 0.8.2
尝试了这个var query = $("#wrap tr:nth-child(2) b").text();
returns "jQuery"
nth-child()中的2个做了! nth-child的索引从1开始而不是0
答案 1 :(得分:0)
你试过吗
修改后,我首先没注意到tr:nth-child,该表中没有1个子tr,但索引1处有一个td
var query = $(".text td:nth-child(1) b").html();
alert(query);
答案 2 :(得分:0)
在Firefox 3和IE8中测试您的示例时,我能够在一次调整后使用您的选择器返回您期望的文本 - 我在表元素中添加了“wrap”ID:
<table id="wrap">
一旦添加了,你的选择器似乎工作得很好。是否有特定平台遇到问题?
答案 3 :(得分:0)
我刚刚尝试了您的示例代码,它立即就可以了。你使用的是什么版本的jQuery?它适用于1.3.2
以下是工作示例:http://jsbin.com/uzuzu/edit
答案 4 :(得分:0)
你需要nth-child(2),:nth-child(1)选出标题。请记住:eq是从0开始的,而:nth-child()是从1开始的。混乱!