1

hereによると、jquery の remove 関数は次のように機能するはずです。

$('div').remove('selector'); 

この例で試していること。

HTML:

<div class="wrapper">
    <p class="unwanted">This should be removed</p>
    <p class="retained">This will remain</p>
</div>​

JavaScript:

jQuery(document).ready(function($) {
    $('div').remove('p.unwanted'); //not working
    //$('p.unwanted').remove(); //this works
});

うまくいきません。私は何を間違っていますか?

4

4 に答える 4

1

ドキュメントの内容を誤解しています。セレクターに一致する一致した要素の子孫である要素を探すのではなく、既に一致した要素のセットをセレクターに一致する要素に絞り込んで削除するだけです。

この HTML がある場合:

<div class="wanted">Some text</div>
<div class="wanted">Some more text</div>
<div class="unwanted">Some unwanted text</div>

そして、このjQueryを実行しました:

$('div').remove('.unwanted');

次に、最初にすべての要素を選択し、次にセレクターに一致する要素のみを削除するため、その 3 番目<div>(unwantedクラスが含まれているもの)のみを削除します。 <div>

例 jsFiddle

于 2012-09-06T08:58:05.017 に答える
1

div と p.unwanted の両方を削除しようとしています。remove() のフィルターは、現在のノード セット (この場合はすべて div 要素) に適用されます。

代わりに子セットを使用します。

$('div').children().remove('p.unwanted');
于 2012-09-06T09:01:26.610 に答える
0

以下を使用する必要があります。

$('p').remove('.unwanted');

引数 inremoveはフィルターとして機能します。ここでは、最初にすべての要素を選択してから、 class を持つ要素のみ<p>を削除します。unwanted

デモ: http://jsfiddle.net/qwXSw/1/

于 2012-09-06T08:57:47.293 に答える
0

これを試して

 $(document).ready(function() {
    $('div').find('p.unwanted').attr('class', '');
});
于 2012-09-06T09:06:58.330 に答える