2011-10-24 14 views
1

我有兩個DIV元素,使用data()分配了一個名爲「堆棧」的數組。jQuery的 - 我可以彈出()單個調用使用className的2數組的最後一個元素?

這兩個DIV元素都有一類.trigger

我現在要彈出()兩個陣列的最後一個元素像這樣:

$('.trigger').data("stack").pop()

然而,這僅需要關閉第一陣列的最後一個元素,雖然$('trigger').length返回2.

有沒有辦法在一行中刪除兩個數組中的最後一個元素?

回答

2

你可以這樣做:

$('.trigger').each(function() { $(this).data('stack').pop(); }); 

一般來說,jQuery函數返回一個值(如「數據()」或「的.css()」時,通過僅1字符串參數)僅在操作匹配數組中的第一個元素。因此,當你想做類似交易的事情時,你可以使用明確的「.each()」來獲取每個元素。

+0

好的。今天學到了一些東西:-) – frequent

2

你可以使用「地圖」 -

var arr = $('.trigger').map(function() { 
    return $(this).data("stack").pop() 
}) 

演示 - http://jsfiddle.net/5gvAH/

由於尖指出,這個解決方案工作得很好,如果你需要從每個陣列中彈出的值。如果您只想彈出這些值並且不需要返回的值,那麼Pointy的建議將是最合適的。

+0

是的,如果希望收集從陣列中彈出的值,這是正確的。 – Pointy

+0

很高興知道。現在我只需要刪除元素而不檢索值。還是謝謝。 – frequent

+0

我看到這個的第一反應就是'聖牛!這很酷!'謝謝你。即使在我沒有真正看的時候,我也喜歡在很酷的代碼片段中蹣跚而行。 – Jake

相關問題