按类查找子项并删除除第一个之外的所有元素

时间:2012-02-08 16:57:57

标签: jquery

我有一个TR行id(myRow),它有一个子表,该表包含类“.CONTENTROW”的行。我使用以下代码删除除“第一个”之外的所有类“.CONTENTROW”。这是我正在使用的代码:

var myRow = $("#" + rowId).next().clone();
$(myRow).find(".CONTENTROW tr:gt(0)").remove();

以上似乎不起作用,也不删除任何行。我尝试使用JSFiddle,但JSFiddle以一种奇怪的方式表现而不是令人耳目一新。

JSFIDDLE:http://jsfiddle.net/Xt6VQ/1/

2 个答案:

答案 0 :(得分:11)

$(myRow).find(".CONTENTROW").not(":first").remove();

答案 1 :(得分:2)

如果myRow中的行ID没有#作为前缀,则需要将选择器更改为:

$('#' + myRow);

由于您的myRow变量已经是jQuery对象(正如您在通过var myRow = $("#" + rowId).next().clone();检索的评论中指定的那样),因此您可以直接调用myRow.find()

您还需要将行选择器更改为tr.CONTENTROW:not(:first-child)

您目前所拥有的是将所有元素与CONTENTROW类匹配,找到tr的所有组合后代,然后选择第一个匹配的后代。

有关详细信息,请参阅:first-child:gt选择器文档。

所以,总结一下;

myRow.find("tr.CONTENTROW:not(:first-child)").remove();
相关问题