2017-06-19 38 views
0

我想在每個html元素上設置一個jquery函數。由於每個元素都有一個唯一的ID,我使用了一個for循環:在for循環中調用jquery

function setupSwitch(temperatureNumArr){ 
    var id = ''; 
    for (var i = 0; i < temperatureNumArr.length; i++) { 
    id = 'temperature_switch_'+temperatureNumArr[i] 
    $(id, function(){ 
     console.log(id); 
     $(id).change(function() { 
     alert(($(this).prop('checked')) + typeof(($(this).prop('checked')))) 
     }); 
    }); 
} 

上面的代碼只打印了最後一個ID,並在更改功能失效,我認爲它是由JavaScript函數範圍造成的,但我不知道如何將id傳遞給$(...)上的更改函數。

+0

在for循環中聲明你的Id變量 –

+0

你可以把你的代碼放在代碼片段中嗎? –

回答

0

我不完全確定你爲什麼試圖以這種方式綁定更改處理程序。

建議,CSS類添加到您的複選框說「tempSwitch」,那麼你的jQuery的設置應該如下:

$("input:checkbox.tempSwitch").change(function() { 
    var id = $(this).attr('id'); 
    alert(id + ": " + ($(this).prop('checked')) + typeof(($(this).prop('checked')))) 
}); 

的$(「輸入:checkbox.tempSwitch」)將找到的所有輸入鍵入帶有CSS類tempSwitch的複選框,並在更改時附加「更改」處理程序。