我试图找到带有ids的复选框:checkbox0,checkbox1,checkbox2,...但似乎无法找到如何将参数提供给第二行。
for (var i = 0; i < @Model.ProjectCategories.Count; i++) {
$('input:checkbox[id="checkbox" + i]').change(
function () {
alert(this);
if (this.is(':checked')) {
$('#maakproject_' + this.id.charAt(this.id.length - 1)).show();
} else {
$('#maakproject_' + this.id.charAt(this.id.length - 1)).hide();
}
});
答案 0 :(得分:4)
您需要连接字符串:
$('input:checkbox[id="checkbox"' + i + ']').change(...
但是,使用id选择器会更好:
$('#checkbox' + i).change(...
或者更好的是,分配一个公共属性(比如一个类名)并使用:
$('.myClassName').change(...
答案 1 :(得分:1)
试试这个:你必须将i
与复选框连接起来。对maakproject
i
使用相同的for (var i = 0; i < @Model.ProjectCategories.Count; i++) {
$('input:checkbox[id="checkbox"' + i +']').change(
function () {
alert($(this));
if ($(this).is(':checked')) {
$('#maakproject_' + i).show();
} else {
$('#maakproject_' + i).hide();
}
});
。
$(function(){
//bind change event handler using start with selector i.e. checkbox id starting with checkbox
$('input[id^="checkbox"]').change(function(){
//get index from checkbox id
var checkboxIndex = $(this).attr('id').replace('checkbox','');
if($(this).is(':checked'))
{
$('#maakproject_'+checkboxIndex).show();
}
else
{
$('#maakproject_'+checkboxIndex).hide();
}
});
});
而不是运行循环我建议使用jquery start with selector。如果您的复选框计数不同,则您不必再次触摸该脚本。见下面的脚本
{{1}}
答案 2 :(得分:0)
你可以试试这个。这将列出名称为“checkbox”的所有输入字段的开头:
$("input[id^='checkbox']").each(function() {
console.log($(this).attr('id'));
});