jQuery 的 nth-child(n+2) 表结构问题

发布于 2024-11-26 18:49:43 字数 1055 浏览 1 评论 0原文

jQuery 的 nth-child 选择器无法正常工作,因为我希望它能与下面的 HTML 一起工作。它返回 0 而不是(SELECT 总数 - 1)。如果我去掉表并只保留 SELECT,它就可以正常工作。我注意到,如果我使用 nth-child(n+1) ,无论我是否保留 TABLE 结构,它都可以正常工作。将警报代码移至按钮单击事件不会改变任何内容。

<table>
    <tr>
        <td>
            <select>
                <option value=""></option>
                <option value=""></option>
                <option value=""></option>
            </select>
        </td>
        <td>             
            <select>
                <option value=""></option>
                <option value=""></option>
                <option value=""></option>
            </select>
        </td>
    </tr>
</table>

和 jQuery 代码

$(document).ready(function() {
    alert($("select:nth-child(n+2)").length);
});

jsfiddle 演示

jQuery 1.6.2; IE8(没办法!);我没有使用表格来创建页面布局。

The jQuery's nth-child selector isn't working as I expect it to work with the below HTML. It returns 0 instead of (total number SELECTs - 1). It works just fine if I get rid of the TABLE and keep only SELECTs. I noticed that it works fine if I use nth-child(n+1) whether I keep the TABLE structure or not. Moving the alert code to a button click event didn't change anything.

<table>
    <tr>
        <td>
            <select>
                <option value=""></option>
                <option value=""></option>
                <option value=""></option>
            </select>
        </td>
        <td>             
            <select>
                <option value=""></option>
                <option value=""></option>
                <option value=""></option>
            </select>
        </td>
    </tr>
</table>

and jQuery code

$(document).ready(function() {
    alert($("select:nth-child(n+2)").length);
});

jsfiddle demo.

jQuery 1.6.2; IE8 (can't help it!); I'm not using table to create page layout.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灯角 2024-12-03 18:49:43

如果您想要的只是除第一个之外的每个选择元素,则只需使用 select:gt(0)

原因 :nth-child(n+2) 不起作用是因为选择元素没有相同的父元素。 :nth-child 取决于计算同一父项的子项。

看看这个:
http://jsfiddle.net/petersendidit/MvkUP/1/

If all you want is every select element but the first one then just use select:gt(0)

The reason :nth-child(n+2) doesn't work is because the select elements do not have the same parent. :nth-child depends on counting children of the same parent.

Take a look at this:
http://jsfiddle.net/petersendidit/MvkUP/1/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文