-1

我正在使用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 是将它们全部封装起来的包装器。选择器小工具说,当我使用:

$("#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 警报。

怎么了?

4

5 回答 5

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 可以解决问题!第 n 个孩子的索引从 1 而不是 0 开始

于 2009-05-14T02:37:46.180 回答
0

你需要 nth-child(2), :nth-child(1) 选择标题。请记住 :eq 是从 0 开始的,而 :nth-child() 是从 1 开始的。令人困惑!

于 2009-05-14T03:39:32.367 回答
0

你有没有尝试过

修改后,我首先没有注意到 tr:nth-child,该表中没有 1 个子 tr,但索引 1 处有一个 td

var query = $(".text td:nth-child(1) b").html();
alert(query);
于 2009-05-14T01:54:37.190 回答
0

在 Firefox 3 和 IE8 中测试您的示例时,经过一次调整,我能够使用您的选择器取回您期望的文本 - 我在您的表格元素中添加了一个“换行”的 ID:

<table id="wrap">

添加后,您的选择器似乎工作得很好。是否有您遇到问题的特定平台?

于 2009-05-14T02:08:25.097 回答
0

我刚刚尝试了您的示例代码,它立即起作用。您使用的是什么版本的 jQuery?它适用于 1.3.2

这是工作示例:http: //jsbin.com/uzuzu/edit

于 2009-05-14T02:16:09.510 回答