2010-04-05 61 views
3

說我有下面的HTML:jQuery代碼刪除與相同內容的所有跨度,但保持一個

<span class="fruit">Apple</span> 
<span class="fruit">banana</span> 
<span class="fruit">Apple</span> 
<span class="fruit">Apple</span> 
<span class="fruit">orange</span> 

我嘗試了不同的方法,但它沒有工作,我想一個jQuery代碼刪除所有(。水果)與相同內容的跨越,但保持一個(第一如果可能的話),所以我將結束與以下:

<span class="fruit">Apple</span> 
<span class="fruit">banana</span> 
<span class="fruit">orange</span> 

謝謝

回答

8
$("span.fruit:contains(Apple):not(:first)").remove(); 
+0

我喜歡它,當這個傢伙似乎說話選擇,而不是寫它。大聲笑 和當然愛jquery,使這一切如此簡單。可以很容易想象一個語音識別軟件,你說所有的跨度被刪除,並保持一個,只是這樣做。呵呵 – XGreen 2010-04-05 01:26:09

+0

這適用於特定情況,但不適用於一般情況。 – Lee 2010-04-06 13:00:54

1
var temp = array[]; 

$(".fruit").each(function(i) { 
    var html = $($this).html(); 
    if($.inArray(html, temp)) { 
     $($this).remove(); 
    } 
    else { 
     temp.push(html); 
    } 

}); 
2
$('span.fruit').each(function(){ 
    return $('span.fruit:contains('+$(this).text()+'):not(:first)').remove(); 
}) 
0
temp = $('span:first').clone(true); 
//remove all the span 
$().html(); 
$().append(temp); 
相關問題