2012-11-02 24 views
0

我有這個代碼使用元素名稱創建一個數組,但不是隻顯示一次它顯示數組4次。我現在做錯了什麼?jQuery創建一個使用元素名稱的數組顯示多次

HTML

<ul> 
    <li><a draggable="true" href="#" id="one" name="uno" class="imgHvr">One</a></li> 
    <li><a draggable="true" href="#" id="two" name="dos" class="imgHvr">2</a></li> 
    <li><a draggable="true" href="#" id="three" name="tres" class="imgHvr">three</a></li> 
    <li><a draggable="true" href="#" id="four" name="sweet" class="imgHvr">4</a></li> 
</ul> 

jQuery的

$("#subBtn").click(function() { 
    var answers = [] 
    $('#bin a').each(function() { 
     answers.push($(this).attr('name')); 
     console.log(answers); 
    }) 
}); 

我已經張貼在這裏Demo

+1

這是因爲它的'。每個內'循環。 – Blazemonger

+2

只要將它移到每個循環之外即可.. –

回答

0

的完整代碼在回答形式:

$("#subBtn").click(function() { 
    var answers = [] 
    $('#bin a').each(function() { 
     answers.push($(this).attr('name')); 
    }) 
    console.log(answers); 
}); 
+0

哇,這是一個簡單的修復!謝謝!! – user1791449

+0

星期五下午我有這個工作,但今天早上我來了,我的代碼工作不正常!當我點擊#subBtn來查看它創建的數組時,每次單擊按鈕時它都會將所有內容加倍。我做錯了什麼? [這是代碼](http://jsfiddle.net/G22ZA/3/) – user1791449

+0

您正在多次分配事件處理程序。確保上面的代碼只執行一次,或者使用這一行代替:$(「#subBtn」)。unbind('click')。click(function(){。這將在添加新代碼之前刪除監聽器 – user1026361

相關問題