2015-02-07 49 views
0

我有一個包含類別按鈕的跨度,點擊後,子類別按鈕添加到父跨度內。它的目的是,當類別按鈕被再次點擊,如果子類別已經被填充,它應該刪除它們,就像這樣:如何在父元素內部刪除某個類的元素Jquery

$('.catBtns').on('click', function() { 
    var catId = parseInt(this.id); 
    if ($('#' + catId).parent().find('button').length <= 1) { 
     $.each(data.category[catId].subcategory, function(i) { 
      $('<button class="subcatBtns" id="' 
       + data.category[catId].subcategory[i].subcategoryId + '">' 
       + data.category[catId].subcategory[i].subcategoryName.split('<--name-->')[currentLang] 
       + '</button>').appendTo($('#' + catId).parent()); 
      i++; 
     }); 
    } else { 
     $('#' + catId).parent().remove('.subcatBtns'); 
    } 
}); 

到目前爲止沒有運氣。爲什麼我無法從類別按鈕的父元素中刪除類subcatBtns的所有元素? remove()方法的jquery API有這個例子:

$("div").remove(".hello"); 

是否因爲之前的parent()方法?我應該只添加一個特定的標識到跨度而不是通過孩子的ID選擇它?的HTML是很簡單的,這裏:

<nav id="nav"> 
     <img src="img/resources/logo.png" alt="logo" id="logoMenu"> 
     <span id="span0" class="catSpan"> 
      <button class="catBtns" id="0">EN-0</button> 
      <button class="subcatBtns" id="000">EN-000</button> 
      <button class="subcatBtns" id="001">EN-001</button> 
     </span> 
     <span id="span1" class="catSpan"> 
      <button class="catBtns" id="1">EN-1</button> 
     </span> 
     <span id="span2" class="catSpan"> 
      <button class="catBtns" id="2">EN-2</button> 
     </span> 
     <span id="span3" class="catSpan"> 
      <button class="catBtns" id="3">EN-3</button> 
     </span><span id="span4" class="catSpan"> 
      <button class="catBtns" id="4">EN-4</button> 
     </span> 
    </nav> 
+2

請出示的HTML結構。當我們可以清楚地看到您正在處理的HTML結構時,我們可以提供最好的jQuery選項。我們必須知道事情是相對於彼此的。 – jfriend00 2015-02-07 18:05:35

+0

在這段代碼中似乎沒有任何跨度... – MTCoster 2015-02-07 18:11:17

+2

您的HTML不包含任何'subcatBtns'類... – 2015-02-07 18:11:51

回答

3

.remove()方法刪除上調用它元素,任選地通過一個選擇器過濾。在線路

$('#' + catId).parent().remove('.subcatBtns'); 

你定義一組匹配的元素只包含一個元素(按鈕容器),然後調用.remove()這一套與選擇".subcatBtns"。由於容器與選擇器不匹配,因此無法刪除。

嘗試,而不是:

$('#' + catId).parent().find('.subcatBtns').remove(); 
+0

這就像一個魅力!感謝您的解釋,它更有意義。我需要首先選擇類的子元素,然後刪除它們。 – 2015-02-07 18:42:16