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

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
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 に答える
1

.html() メソッドを使用して null に設定します。

これを参考にチェック

于 2013-02-22T04:36:29.030 に答える
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 に答える
0

foo の削除を改善する優れた方法がわかりません<label>divを使用して、構文的にの削除を改善できます。

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

CSS 隣接兄弟セレクター。

于 2013-02-22T04:37:08.353 に答える