2013-09-25 59 views
0

我的問題在這裏:如何增加價值上點擊陣列(JavaScript)的,並刪除它,如果它已經在

我需要值的元素添加到一個數組(裏面是空的),就點擊dom。它會將數據ID添加到數組中。我需要做一個循環來添加多個data-id到這個數組,但我失敗了,當我想要刪除它,如果它已經在。

任何想法?下面是代碼:

$arr = []; 
    $('.friends-list').live('click', function(){ 

    var $str = $(this).attr('data-id'), 
     $yourFriends = false; 

     $arr.push($str); 

     console.log($arr); 



    if($ids != ''){ 
     $('#jsSubmit').removeClass('desactive'); 
     $yourFriends = true 
    } 

    if($yourFriends == true){ 
     $('#jsSubmit').prop('disabled', false); 
    }else { 
     $('#jsSubmit').prop('disabled', true); 
    } 

}); 
+3

把$ ARR = [];在點擊範圍之外(使其成爲全球測試)。每次觸發新的點擊時都會重置。 –

+0

此外,'live()'方法已被棄用,並且不再支持最新的jQuery構建。你應該使用'on()'方法,用3個參數代替。 – Boaz

+0

關鍵是我的元素在開始時並不在最後。它們是在點擊後生成的......但我會試試這個!編輯:這是工作大聲笑...我是白癡......現在我已經嘗試刪除值,如果數據ID已經在陣列中! – Revan

回答

0

像這樣的充滿每一個數據-ID的陣列.friends名單

$('.friends-list').live('click', function(){ 
... 
    var arr = []; 
    for(var x = 0; x < jQuery(this).length; x++){ 
     var dataIDstr = jQuery(this).attr('data-id'); 
     arr.push(dataIDstr); 
    } 
... 

我希望我明白你要找的,讓我知道! :)

加上它建議使用。對()代替.live()

最佳

+0

它的工作完美,現在我要去嘗試刪除data-id,如果它已經在。Thx老兄! – Revan

+0

你是什麼意思?如果你讓我明白你的問題,我可以試着幫你。 – Donnie

相關問題