2013-07-08 21 views
1

我正在尋找一種方法來除去兩個相同的div之一,如果它們是並排:刪除兩個div之一,如果相同

實施例:

<div id="foo"> 
    <ul> 
     <li><a class="foo2" href="/">Home</a></li> 
     <div class="foo3"></div><div class="foo3"></div> 
     <li><a class="foo2" href="link.html"><strong>Link text</strong></a></li> 
    </ul> 
</div> 

在上面的例子2。 foo3鏈接存在,而只有一個是必需的。

基本上是這樣的:

$("#foo ul li:contains('div.foo3 div.foo3')").first().remove(); 
+1

您是否嘗試過使用您發佈的聲明?如果是這樣,它工作嗎?如果不是,你的JS控制檯中的錯誤信息是什麼? – taylorc93

+0

你知道你不應該有'div'孩子到'ul'期間,對吧? – kojiro

+0

你也有兩個'foo3' :) – Alvaro

回答

3

很簡單,嘗試

$('div.foo3').eq(1).remove(); 

的jsfiddle - http://jsfiddle.net/rUvS5/1/

+1

'div'選擇器在這種情況下是不需要的。另外,'eq'不是很快:http://jsperf.com/eq-vs-last2 – Alvaro

+1

乾杯芽,這是現貨。 – Dan382

+0

@Steve發生了什麼,如果我有4個div,同一班,我想刪除第二個?他只指定了第二方。 – commit

1

這個怎麼樣?

$('#foo ul li').each(function() { 
    if ($(this).find('div.foo3').length > 1) 
     $(this).find('div.foo3:not(:first)').remove(); 
}); 

而且,你.foo3 s爲不能在li,他們在ul

WORKING DEMO

+0

是的,我只是試圖檢查,你的權利。但我不會深入,因爲在我的 – casraf

+0

@stackErr等待之後,已經提出了另外約3個更好的選項,那是因爲你的div不在li中,而是在ul中。 – casraf

+0

對不起,我以爲你是OP,所以我錯誤地給你解決了 – casraf

0

試試這個:

var i = 0; 
$(".foo2").each(function() { 
if (i >= 1){ 
    $(this).remove(); 
}  
i++; 
}); 
0

我認爲你正在尋找類似.each()docs)或.filter()如果您有線索如何選擇除第一個元素以外的所有元素。 (docs)。

$('#foo ul li div.foo3').each(function(i, elem) { 
    if(i != 0) { 
    $(elem).remove(); 
    } 
}); 
相關問題