删除具有specfic类的所有子节点

时间:2015-06-25 09:37:58

标签: javascript jquery html

我有动态ul li节点创建树,我想删除所有

的子跨节点
class="highlight" or
class="add_action" or
class="delete_action" or
class="edit_action"

在specfic li下使用specfic id - (在这个例子中为20) - 我用jquery尝试这个代码来找到所有带有这些类的span来删除它但它没有用

$('li#20').find('span.add_action').each(function(){
    $(this).remove();
});

也累了

   $('li#20').eq(0).find('.add_action').remove();

  $('li#20').children('.add_action').remove();

这是完整的例子

https://jsfiddle.net/kqagjtmr/

3 个答案:

答案 0 :(得分:2)

获取具有指定类的所有span元素并删除所有这些元素。无需使用each进行循环。使用逗号分隔的span元素选择所有匹配的元素。

$('li#20')
    .find('span.highlight, span.add_action, span.delete_action, span.edit_action')
    .remove();

DEMO

答案 1 :(得分:2)

您的代码中有id个重复属性,例如:

<li class="thide" id="20"><span class="vertical"></span>

<span id="20" class="first_name" title="">الجد  سعد</span>

这就是$('li#20')无法正常运作的原因。 id属性必须是唯一的,并且不应该以数字开头。改为使用类。

remove元素,只需使用:

$('someSelector').remove();

此外,你应该在你的小提琴中包含jQuery,你可以在这里找到选项:

enter image description here

答案 2 :(得分:1)

请参阅更新的小提琴:“https://jsfiddle.net/kqagjtmr/1/

使用$('li#20').find("highlight add_action delete_action edit_action").remove();

一次查找多个元素并将其删除。