0

我有以下复选框:

<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>

在加载时,我做了一些 ajax 并下拉包含一组项目的 json,这些项目指示应检查哪些复选框。

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

因此,我希望 contactTypesCheckbox[15] 被检查,但事实并非如此,没有错误。

我究竟做错了什么?

太感谢了

4

1 回答 1

4

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

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

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

另请参阅此问题:

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

[]关于在 ID 字符串中使用特殊字符。它在 HTML5 中是允许的,但在 HTML4 中是不允许的。并且因为上面需要逃逸,所以最好不要使用它。

于 2013-05-30T19:52:32.280 回答