在使用jQuery检查变量复选框时遇到麻烦



我有以下复选框:

<div class="row">
    <div class="large-2 columns"><input  id="contactTypesCheckbox[12]" name="contactTypesCheckbox[12]" class="contactTypesCheckbox" type="checkbox" value="Billing" />&nbsp;Billing</div>
    <div class="large-2 columns"><input  id="contactTypesCheckbox[15]" name="contactTypesCheckbox[15]" class="contactTypesCheckbox" type="checkbox" value="Creative" />&nbsp;Creative</div>
... etc ...
</div>

Onload,我做了一些ajax,我拉下json,其中包括一个数组的项目,指示哪些复选框应该被选中。

        $.each(data.contactTypes, function(key, contactType) {
            // key is = 15 in my test
            $('#contactTypesCheckbox[key]').prop('checked', true);
        });
因此,

我希望选中contactTypesCheckbox[15],但它没有选中,没有出现错误。

我做错了什么?

Thank you so much

在Javascript中变量不会在字符串中展开,你需要连接:

$('#contactTypesCheckbox\['+key+'\]').prop('checked', true);

还需要转义括号,否则它们在选择器语法中具有特殊意义。

参见这个问题:

HTML中id属性的有效值是什么?

关于在ID字符串中使用[]等特殊字符。这在HTML5中是允许的,但在HTML4中不允许。由于以上需要转义,所以最好不要使用

最新更新