javascript - jQuery 选择器返回重复元素

标签 javascript jquery html-table row

我试图用 jQuery 选择表中除第一行(列标题)之外的所有行,为此我有这个选择器:

$("#tableID tr:not(:first)")

有三行,一行用于列标题,两行用于内容,选择器返回 4,但如果我这样做:

$("#tableID tr")

它返回三行就好了。我在选择器中遗漏了什么吗?

如果有帮助,我做了截图:

给我问题的代码是这样的(太简单了,我不明白为什么它不起作用)

    function addTableColumn() {
        var uls = $('#debate ul').length;
        $('#debate tr:first ').append("<th id='foo'>foo title</th>");    
        $("#debate tr:not(#debate tr:first)").append("<td><ul id='sortable" + (uls+1) + "' class='connectedSortable'></ul></td>").hide().fadeIn("slow");
        alert("I'm seeing " + $('#debate tr:not(:first)').length + " rows (without first row), type: " + $('#debate tr:not(:first)')[0] + " but the row count returns (including titles) " + $('#debate tr').length);
        makeSortable();
    }

最佳答案

如果是标题行,我建议您将标记更改为如下内容:

<table>
    <thead>
        <tr>
            <th>Title</th>
            <th>Title</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Content</td>
            <td>Content</td>
        </tr>
        <tr>
            <td>Content</td>
            <td>Content</td>
        </tr>
        <tr>
            <td>Content</td>
            <td>Content</td>
        </tr>
    </tbody>
</table>

然后,在您的 CSS/jQuery 中,只选择 <tr><tbody> , 这样也更语义化。

关于javascript - jQuery 选择器返回重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7202283/

相关文章:

jquery - Html 表格宽度自动扩展

javascript - 如何使用 Q.js 在循环中执行异步函数

javascript - 将图像存储在高速缓存中

html - 使用 CSS 覆盖 HTML 表格中的背景

javascript - 关闭 bootstrap-datepicker 后防止清除输入

javascript - 如果另一个元素不存在或隐藏,则 AngularJS NgIf 或 NgHide

html - 仅对具有不同颜色的表格行的输入文本字段进行样式化

javascript - 我可以通过代码检测浏览器的 TLS 版本吗?

javascript - 继承方法调用触发 Typescript 编译器错误

javascript - jquery keypress 在输入文本限制中,我希望它只允许 A-Z 和空格,但我的代码不允许 "Y"和 "Z"