我已經寫了一些JQuery代碼來遍歷ASP.Net網頁上的一些複選框,並且發現嵌入在$ .each函數中的if語句有2個非常奇怪的問題。代碼選擇我的複選框就好了,當代碼遍歷$ .each函數時,我可以清楚地看到objValue.checked是true或false,具體取決於是否檢查複選框。我看到的問題是:1)它總是落入我的if語句中(即使objValue.checked的值爲false),2)我的availableInstalls變量的值永遠不會遞減,即使我可以看到調試模式,它擊中「availableInstalls = availableInstalls - 1」行代碼。任何人都知道可能會導致這種行爲?JQuery if語句
$(document).ready(function() {
$(".installsoftwarecb").click(function() {
var availableInstalls = 10;
var checkBoxes = $(".installsoftwarecb input[type='checkbox']");
$.each(
checkBoxes, function(intIndex, objValue) {
if (objValue.checked) {
availableInstalls = availableInstalls - 1;
}
});
});
});
選擇器正在工作,但它應該是真正的輸入:複選框:檢查,而不是檢查將檢查上下文中的每個單元可能是非常低效的。您可以將其過濾爲帶有輸入的複選框:複選框 - 大部分時間可能都不是什麼大問題,但這只是一個好習慣。 – 2009-08-20 16:31:57
正如我在其他評論中寫的那樣,我同意你和我編輯了我的答案。就個人而言,我認爲速度並不重要,但它可以計算單選按鈕元素的事實在將來修改HTML時可能會出現bug。 – SolutionYogi 2009-08-20 16:39:13
謝謝你更新你的答案。 +1 :) – 2009-08-20 16:41:10