jQuery删除输出循环上的重复行

时间:2014-02-06 00:13:48

标签: javascript jquery mysql sql

我正在寻找一些jQuery脚本的帮助,该脚本将在屏幕上输出结果时运行。

在运行输出循环时,我需要jQuery查看所有行以查看是否已存在具有类似ID的行,如果存在,那么我需要它删除刚刚输出的具有重复的当前行标识。

我正在通过从我的db调用中传入一个唯一值并将其添加到“row_”来构建我的tr“id”。所以最终会产生一个像“row_6373”(6373是唯一值)的id。

<table>
[while loop]
            // jQuery script is currently right here... 
    <tr id="row_6373"><td></td></tr>
    <tr id="row_988732"><td></td></tr>
    <tr id="row_6435"><td></td></tr>
    <tr id="row_6373"><td></td></tr> Row that was just output
[/while loop]
</table>

当循环运行时,我需要jQuery检查是否存在行id“row_6373”,如果存在,我需要它来删除row_6373的最后一个实例。这可能在输出循环中发生几次。 “row_6373”可能会被检查一千次。

现在我正在这样做:我在循环开始时运行它以查看行ID是否已经存在,但它正在删除所有内容。

<script>
$(function(){
    if($("#action_row_" + {{ action.product.id }}).length){
        $("#action_row_" + {{ action.product.id }}).remove();
    }
})
</script>

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您只是在测试是否未定义长度。然后,您将删除与该选择器匹配的所有元素。你想要这个:

$(function(){
    if($("#action_row_" + {{ action.product.id }}).length > 1){
        $("#action_row_" + {{ action.product.id }}).last().remove();
    }
})

编辑:如果你有重复项,也应该使用类而不是id:#action_row_应该是.action_row_