我在选择jQuery中的元素时遇到问题

时间:2009-05-14 01:45:57

标签: javascript jquery greasemonkey

我正在使用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警报。

怎么了?

5 个答案:

答案 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开始的。混乱!