jQuery的问题';具有表结构的第n个子项(n+;2)

jQuery的问题';具有表结构的第n个子项(n+;2),jquery,html,internet-explorer-8,jquery-selectors,css-selectors,Jquery,Html,Internet Explorer 8,Jquery Selectors,Css Selectors,jQuery的第n个子选择器不能像我期望的那样与下面的HTML一起工作。它返回0而不是(总数选择-1)。如果我去掉表格,只保留选择项,效果会很好。我注意到,无论是否保留表结构,如果使用nth child(n+1)都可以正常工作。将警报代码移动到按钮单击事件不会改变任何内容 <table> <tr> <td> <select> <option value="">

jQuery的第n个子选择器不能像我期望的那样与下面的HTML一起工作。它返回0而不是(总数选择-1)。如果我去掉表格,只保留选择项,效果会很好。我注意到,无论是否保留表结构,如果使用
nth child(n+1)
都可以正常工作。将警报代码移动到按钮单击事件不会改变任何内容

<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 1.6.2;IE8(情不自禁!);我没有使用table来创建页面布局。

如果您只需要每个select元素,而不是第一个元素,那么只需使用
select:gt(0)

第n个子元素(n+2)不起作用的原因是所选元素没有相同的父元素:第n个子项取决于计算同一父项的子项

看看这个:

谢谢大卫,这正是我用来解决这个问题的方法。我问这个问题是想知道为什么第n个孩子(n+2)不工作。@Lobo我更新了我的答案来说明为什么
:第n个孩子不工作谢谢先生。答案总是在问题里——孩子!我更新了小提琴,我想它解释得更好。
$(document).ready(function() {
    alert($("select:nth-child(n+2)").length);
});