删除子元素

时间:2013-02-22 04:31:19

标签: jquery

如何删除 foo label以及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 个答案:

答案 0 :(得分:9)

这里只需did on what html you posted

试试这个:

 $('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

checkout on fiddle

甚至更好的.nextUntil()

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

fiddle for .nextUntil()

答案 1 :(得分:9)

很简单:

$(元素)。儿童()除去();

这么容易......

答案 2 :(得分:1)

使用.html()方法并将其设置为null。

检查This以获取参考

答案 3 :(得分:0)

我没有看到改善foo <label>删除的好方法。您可以使用

在语法上改进div的删除
$('label:contains("foo") + div').remove();

CSS邻近兄弟选择器。

答案 4 :(得分: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.

答案 5 :(得分:0)

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..
}