Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中值存储在数组中的复选框_Javascript_Jquery_Html - Fatal编程技术网

Javascript 选中值存储在数组中的复选框

Javascript 选中值存储在数组中的复选框,javascript,jquery,html,Javascript,Jquery,Html,我有这个功能,我目前正在预先选择所有复选框: function setupModuleSelection(selectedModules, preSelected) { // TODO: preSelected not used $('#my-table > tbody > tr > td.module_id > input[type="checkbox"]') .prop('checked', true); } 其中预选=['modul

我有这个功能,我目前正在预先选择所有复选框:

function setupModuleSelection(selectedModules, preSelected) {
    // TODO: preSelected not used
    $('#my-table > tbody > tr > td.module_id > input[type="checkbox"]')
        .prop('checked', true);
}
其中
预选=['module-001','module-003','module-027']
(例如):

表格如下:

<tr>
...
<td class="module_id"><input type="checkbox" name="module_id" value="module-027"></td>
</tr>

...
现在,我想通过过滤
模块id
来激活复选框,这是由
预选
数组提供的。如何使用jQuery实现这一点?

如下所示

var preSelected = ['module-001', 'module-003', 'module-027'];

var selector = ':checkbox[value="' + preSelected.join('"], :checkbox[value="') + '"]';
$(selector).prop('checked', true);
选择器的值将为

:checkbox[value="module-001"], :checkbox[value="module-003"], :checkbox[value="module-027"]
将此字符串传递给jQuery对象将选中所有必需的复选框

现场演示:

var元音=['a','e','i','o','u'];
变量选择器=':复选框[value=“”+元音.连接(“”],:复选框[value=“”)+“];
控制台日志(选择器);
$(选择器).prop('checked',true)

A.
B
C
D
E
F
I
使用如下

var preSelected = ['module-001', 'module-003', 'module-027'];

var selector = ':checkbox[value="' + preSelected.join('"], :checkbox[value="') + '"]';
$(selector).prop('checked', true);
选择器的值将为

:checkbox[value="module-001"], :checkbox[value="module-003"], :checkbox[value="module-027"]
将此字符串传递给jQuery对象将选中所有必需的复选框

现场演示:

var元音=['a','e','i','o','u'];
变量选择器=':复选框[value=“”+元音.连接(“”],:复选框[value=“”)+“];
控制台日志(选择器);
$(选择器).prop('checked',true)

A.
B
C
D
E
F
我
您可以使用类似的方法,根据值选择
输入


您可以使用类似的方法,根据值选择
输入。

您可以加入数组值以生成属性等于选择器:

$('#my-table > tbody > tr > td.module_id > input[type="checkbox"][value="' + preSelected .join('"],[value="') + '"]').prop('checked', true);

可以联接数组值以生成属性相等选择器:

$('#my-table > tbody > tr > td.module_id > input[type="checkbox"][value="' + preSelected .join('"],[value="') + '"]').prop('checked', true);

@Ramanlfc那不是真的。在你的jquery选择中,
td.module\u id
是什么?@Azzi:对不起,Azzi,我的复制粘贴滑倒了。补充@Ramanlfc那不是真的。在你的jquery选择中,
td.module\u id
是什么?@Azzi:对不起,Azzi,我的复制粘贴滑倒了。补充!好的,我只知道你可以这样调用checkbox值。好的,我只知道你可以这样调用checkbox值。嗯,模块id不在名称中,而是在我的例子中的值(django生成:来自django_表2的CheckBoxColumn)好的,我明白了,但是,这可能只是我没有深入到jQuery中:是这样的(潜在的)巨大的选择器性能?在void的回答中,对每个进行
forEach
不是更快(更清晰)吗?嗯,模块id不在名称中,而是在我的案例中的值中(django生成:来自django_表2的CheckBoxColumn)好的,我明白了,但是,这可能只是我没有深入到jQuery中:这样一个(潜在的)巨大的选择器性能吗?在void的回答中,为每个人做一个
forEach
不是更快(更清晰)吗?