如何删除 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();
我该如何改进?
答案 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
甚至更好的.nextUntil()
:
$('label:contains("qux")').nextUntil($('label:contains(bar)'),$('label, br')).remove();
答案 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..
}