2013-05-06 62 views
0

我想刪除最後一個元素,如果他們有一個特定的類。對於例子:如果最後一個元素具有類

<div class="grid"> 
    <div class="items"></div> 
    <div class="items"></div> 
    <div class="items"></div> 
    <div class="items"></div> 
    <div class="items empty<"></div> 
    <div class="items empty"></div> 
    <div class="items empty"></div> 
    <div class="items empty"></div> 
</div> 

我添加了最後的元素具有自動上釋放功能,但我想補充只有在最後的是不是已經空4個空項。

所以我覺得這樣的功能(但不工作):

if (!($(".items").slice(-4).hasClass("empty"))) { //do nothing } 

else { 
    $(".grid").append("<div class='items empty'></div>"); 
    $(".grid").append("<div class='items empty'></div>"); 
    $(".grid").append("<div class='items empty'></div>"); 
    $(".grid").append("<div class='items empty'></div>"); 
} 

感謝

+0

您是否嘗試過使用.eq()作爲元素索引? – Sam 2013-05-06 10:52:35

回答

0

.eq() jquery的方法可以接受負指數。將此索引設置爲-1會給出最後一項:

if($('.items').eq(-1).is(':not(.empty)')){ 
    //add for new emty div to gride 
} 
+0

它與eq()方法正常工作 – Kaherdin 2013-05-06 11:37:14

0

嘗試使用:last選擇:

if ($(".items:last").hasClass("empty")){ 
    //do nothing 
} else { 
    $(".grid").append("<div class='items empty'></div>"); 
    $(".grid").append("<div class='items empty'></div>"); 
    $(".grid").append("<div class='items empty'></div>"); 
    $(".grid").append("<div class='items empty'></div>"); 
} 

它將爲每個數字工作的元素,不僅用於4.

0

試試這個

if($(".items:last").hasClass('empty')) 
{ 
    //do nothing 
} 
else 
{ 
    $(".grid").append("<div class='items empty'></div>("<div class='items empty'></div>("<div class='items empty'></div>("<div class='items empty'></div>"); 
} 
1
while($('.item.empty').length < 4) { 
    $('.grid').append('<div class="items empty"></div>'); 
} 

這種方式,你將永遠有你的好格柵端部4個的空項。 也避免//do nothing部分不幫助代碼可讀性。

2

而是有一個「做什麼,如果從句」這樣做的:

if(!$('.items:last').hasClass('empty')) { 
    var div = "<div class='items empty'></div>"; 
    $(".grid").append(div) 
      .append(div) 
      .append(div) 
      .append(div); 
} 

簡明扼要,再加上它不會讓下一個開發人員或自己有「他是什麼意思由抓耳撓腮//沒做什麼」。

編輯

這是我和Christophs解決方案的混合。 這樣做的目的是將查詢引擎上的負載降至最低,以便您不必多次查詢DOM,而只需在一次調用中進行查詢。 這是一個很好的優化方案,但是在頭部後面有一個很好的做法。

+0

我最喜歡這個。對於額外的優化,你可能想要'.append(div + div + div + div)'來代替(單個追加調用)。 – Mahn 2013-05-06 11:05:23

+0

那麼,人們可以優化很多:)重點不在於混淆OP :)但是,我沒有想到你的解決方案,這很酷! – 2013-05-06 11:06:22

+0

這很好,但它只檢查最後一項是否爲空。我想檢查最後4個項目是否爲空。 – Kaherdin 2013-05-06 11:23:23

相關問題