2014-02-05 68 views
0

我有一個for循環,其中我檢測了多少個複選框已被選中。我試圖將結果推送到一個數組,然後獲得該數組中最後一個項目。 這是我的代碼到目前爲止。通過for循環將元素添加到數組,然後返回最後一項

function updateParentLabel(parentList) { 
var label = parentList.parent().find('label:first'); 
var checked = parentList.find(':checked'); 

var count = 0; 
var result = []; 
for(var i = 0; i < checked.length; i++){ 
    if(checked){ 
     count++; 
    }else { 
     count--; 
    } 
    result.push(count); 
    console.log(result); 
} 

label.append(count); 

}

到目前爲止好,但是,我已經試過這不工作:

result.pop(); //returns [] 
+0

'parentList'是一個jQuery對象?你把結果記錄到控制檯嗎?請注意,'result'是'updateParentLabel()'中的局部變量,不能在函數外部看到。 'if(checked)'總是會傳入你的代碼。 – Teemu

+0

用完了鍵盤上的字母?請回答問題... – Teemu

+0

嗨。謝謝!謝謝我遲到的回覆。請參閱下面的答案。 – Operator

回答

0

我發現了一個更簡單的方法來檢測一個複選框是否已經檢查並相應地採取行動,這使得for循環成爲不必要的。實質上,這就是我想出的。

function updateParentLabel(parentList) { 
var label = parentList.parent().find('label:first'); 
var checked_length = parentList.find(':checked').length; 

if (checked_length !== 0) { 
    label.append(span); 
} 
else { 
    label.find('span').remove(); 
} 

}

相關問題