2016-08-08 39 views
1

我試圖刪除同一類的所有元素,但保留第一個元素。我怎樣才能達到這個角度?在Angular中刪除同一類的多個元素,但首先留下一個

var myElement = angular.element(document.querySelector('myclass')); 
myElement.not(':first').remove() //removes element 

這是我收到的錯誤: ionic.bundle.js:21157類型錯誤:myElement.not是不是一個函數

+0

'document.querySelector('。myclass')' – Neal

回答

1

.not()功能不jqLit​​e,angular.element定義,acording到這個docs,並沒有實現所有的jQuery選擇器和方法。

UPDATE 1

下面是一個例子。

var myElements = document.getElementsByClassName('myclass'); 

myElements = Array.prototype.slice.call(myElements); // convert htmlcollection to array 
myElements = myElements.splice(0, 1); //removes first from working list 

angular.element(myElements).remove(); //removes remaining elements from the DOM 
+0

Yes agree。有沒有其他的方法呢?它工作,如果我刪除。不是但顯然刪除所有元素。 – Jason

+0

用一個例子更新了我的答案。我希望它有幫助。但是,這只是衆多方法中的一種。 –

+0

燦爛的伴侶! – Jason

0

如果轉換由document.querySelector返回數組中的節點列表,你可以移出第一個索引值,然後就休息做.remove

var elements = [].slice.call(document.querySelectorAll(".myclass")); 
elements.shift(); // remove first item in the array 
for (var i=0; i < elements.length; i++) { 
    angular.element(elements[i]).remove(); // remove each element from the DOM 
} 
0

首先創建第一個元素的克隆。

first_element = myElement[0].clone 

刪除集合並使用first_element。如果你使用下劃線,你也可以做如下。

_.filter(myElement, function(element,index){ return index == 0; }); 
相關問題