删除子元素

4
我该如何删除foo标签以及div子元素和br标签?
<label>qux</label>
<label>foo</label><div id="block">text</div><br /><br />
<label>bar</label>

我目前的临时方法:

$('label:contains("foo")').next().remove();
$('label:contains("foo")').remove();

我如何改进这个问题?
6个回答

14

非常简单:

$(element).children().remove();

如此简单...


10

刚刚看了你发布的HTML内容。

试试这个:

 $('label:contains("foo")').remove(); // <-----------label contains foo removed
 $('#block').remove(); //<---------------------------div with id 'block' removed
 $('label:contains(qux)').nextAll('br').remove(); //<--finally all the br next to first label removed

点此查看示例

使用.nextUntil()可以更好地实现:

$('label:contains("qux")').nextUntil($('label:contains(bar)'),$('label, br')).remove();

使用.nextUntil()的示例代码


1
使用 .html() 方法并将其设置为 null。
参考 这里

1
if($("label").text()=='foo'){
   $(this).next('div').remove();
   $(this).closest('br').remove(); 

   // I've used next and closest methods to remove..you can try with others..
}

0

我没有看到很好的方法来改进删除 foo <label>。你可以通过使用更好的语法来改进删除 div

$('label:contains("foo") + div').remove();

CSS相邻兄弟选择器。


0

试试这个:

$('label').each(function(){
    var self = $(this);
    if(self.text() == 'foo'){
          self.next('div').remove();
          self.parent().find('br').remove(); //else use two times next() to remove two br tags.
          self.remove();
    }
});

请在.parent()中提及父级元素,像这样:
parent('div')  //if you have a parent container as div.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接