【问题标题】:jQuery selector returns duplicate elementsjQuery 选择器返回重复元素
【发布时间】:2023-03-20 04:52:01
【问题描述】:

我正在尝试使用 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();
    }

【问题讨论】:

    标签: javascript jquery html-table row


    【解决方案1】:

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

    <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 中,只选择 &lt;tbody&gt; 中的 &lt;tr&gt;s,这样也更有语义。

    【讨论】:

    • 在将标题与 tbody 分离并制作选择器 $('#tableID tbody tr') 后,行数很好。谢谢,这让我发疯了!
    【解决方案2】:

    我会用

    $('#tableID tr:gt(0)')
    

    但你所拥有的应该可以工作!

    【讨论】:

      【解决方案3】:

      $("#tableID tr:not(:first)") 工作正常。

      【讨论】:

      • 这和 OP 有什么不同?
      • 嗯,我花了一些时间来验证这段代码是否有效......并且那个问题在那个时候得到了回答。是的,它是相同的代码:)
      • 显然它不适用于 OP 所以请不要发布无用的答案,而是使用 cmets。
      • 这是我第二次被否决,人们只是说使用 cmets,你怎么能评论原帖?而且我知道当回复无用时人们必须投反对票,但我不认为这个回复是无用的.. OP 应该通过这个回复知道他错过了在标记中告诉我们的一些东西..
      • 我也这么认为。如果答案是正确的,你不应该投反对票。我也认为,选择器是正确的,但页面有一些标记问题(如未关闭的元素)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-16
      • 2015-01-17
      • 2017-09-22
      • 2012-10-29
      • 2019-03-19
      • 1970-01-01
      相关资源
      最近更新 更多