2012-09-06 40 views
1

here刪除,jQuery的刪除功能應該像這樣..的jQuery remove從另一個元素

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

哪我想in this example

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

它不工作。我究竟做錯了什麼?

回答

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

那就只能刪除第三<div>(一個與它的unwanted類),因爲它首先選擇所有<div>元素,然後只刪除那些選擇器匹配。

Example jsFiddle

0

您應使用以下方法:在remove作品作爲一個過濾器

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

論證。所以在這裏,你首先選擇所有<p>元素,然後刪除只有那些具有unwanted類。

DEMO:http://jsfiddle.net/qwXSw/1/

+0

謝謝您的回答,你和安東尼同時回答。恥辱我不能選擇兩者。 – Finnnn

+0

@Finnnn呃......其實我早些時候在57:47回答,而安東尼在58:05回答。你可以檢查你是否徘徊在時間。但我並不在意:)好的你找到了有用的答案。 – VisioN

1

你想刪除的東西,既股利和p.unwanted。 remove()中的過濾器應用於當前的一組節點,在本例中爲所有div元素。

設置使用的孩子而:

$('div').children().remove('p.unwanted'); 
0

試試這個

$(document).ready(function() { 
    $('div').find('p.unwanted').attr('class', ''); 
}); 
+0

@Finnnn是代碼工作? – Codegiant

+0

這有效,但它不會做問題的問題。他希望完全刪除元素,而不是刪除所有的類。 –

相關問題