拆分String数组以查找和检查复选框

swg*_*r14 3 javascript arrays checkbox jquery

我用逗号分隔了一个字符串.我使用javascript命令split将其分解为数组.

我有一组名为ciContact的复选框.

<table border="0" cellspacing="0" cellpadding="6">
    <tr>
        <td><label>
            <input type="checkbox" name="ciContact[]" value="Call" id="ciContact_0" />
      Call</label></td>
    <td><label>
            <input type="checkbox" name="ciContact[]" value="Email" id="ciContact_1" />
      Email</label></td>

        <td><label>
            <input type="checkbox" name="ciContact[]" value="Text" id="ciContact_2" />
      Text</label></td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

该数组仅包含需要检查的值.这些值是从JSON编码的AJAX调用中回显的.但是,这些值(ciContact)都以逗号分隔的数组存储在MySQL数据库中.我有这样做的原因.那么如何读取逗号分隔数组的值并选中相应的复选框?

我试过了:

var ciContact = data.split(", ");
for (var j = 0; j < ciContact.length; j++)
    {
var selected = $('name=ciContact').find('value='+ ciContact[i]);
selected.attr("checked","checked");
}
Run Code Online (Sandbox Code Playgroud)

我离开了那个.哈!

多谢你们!

glo*_*tho 5

var ciContact = data.split(", ");
for (var j = 0; j < ciContact.length; j++) {
    $('input[name^=ciContact][value=' + ciContact[j] + ']').attr('checked','checked');`
}
Run Code Online (Sandbox Code Playgroud)

或者,为了更好的性能:

var ciContact = data.split(", "),
    $inputs = $('input[name^=ciContact]');
for (var j = 0; j < ciContact.length; j++) {
    $inputs.filter('[value=' + ciContact[j] + ']').attr('checked','checked');`
}
Run Code Online (Sandbox Code Playgroud)

或者,幻想:

var ciContact = data.split(", ").join('], [value='),
    $inputs = $('input[name^=ciContact]');

$inputs.filter('[value=' + ciContact + ']').attr('checked','checked');
Run Code Online (Sandbox Code Playgroud)