2013-02-22 221 views
0

如何刪除foolabel以及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(); 

如何才能提高在這?

回答

9

只是did on what html you posted這裏。與.nextUntil()

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

,甚至更好的一個:

試試這個

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

fiddle for .nextUntil()

+0

+1不錯...... :) – 2013-02-22 05:44:17

+0

@Mr_Green感謝v.much。 – Jai 2013-02-22 05:50:02

1

使用.html()方法並將其設置爲null。

檢查This參考

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

很簡單:

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

那麼容易...