3

如何删除foo label以及div子元素和br's?

<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();

我该如何改进呢?

4

6 回答 6

12

非常简单:

$(元素).children().remove();

太简单...

于 2014-05-23T18:53:39.743 回答
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

在小提琴上结帐

甚至更好的.nextUntil()

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

.nextUntil()

于 2013-02-22T05:20:00.130 回答
1

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

检查以供参考

于 2013-02-22T04:36:29.030 回答
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..
}
于 2013-02-22T04:59:57.087 回答
0

我没有看到改善 foo 删除的好方法<label>div您可以通过使用在语法上改进对 的删除

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

CSS 相邻兄弟选择器。

于 2013-02-22T04:37:08.353 回答
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.
于 2013-02-22T04:51:44.247 回答