使用字符串数组复选框
Check checkboxes using array of string
用户可以提供字符串数组,我想在表中查找,并在找到字符串之一时检查与表行相关的复选框。
我可以看到$("#activelisttable tr:contains(" + substr[i] + ")")
包含一个<tr>
,但它根本不在.each
函数中。
下面是完整的代码:
$("#savelistactive").click(function() {
var substr = $("#listtextactive").val().split("'n");
for (var i = 0; i < substr.length; i++)
{
$("#activelisttable tr:contains(" + substr[i] + ")").each(function(item) {
$(this).children("input").prop('checked', true);
});
}
$("#background").fadeOut("slow");
$("#listactive").fadeOut("slow");
});
提琴链接:http://jsfiddle.net/5WVwe/
问题概述:
问题在于for
循环内的选择器。@NobleMushtak建议您将原始小提琴中的.each()
更改为:
$("#activelisttable tr:contains(" + substr[i] + ")").children("input").prop('checked', true);
这是一个很好的建议。但是,由于没有看到您的标记,因此不清楚您使用的确切HTML结构。根据您的小提琴,您的HTML标记包含<tr>
's,然后在其中包含<th>
's:
<tr>
<th>
<input type="checkbox" class="selectall" />
</th>
<th>name</th>
</tr>
这意味着没有<tr>
类型为input
的.children()
。
解决方案:
将.children()
改为.find()
:
$("#activelisttable tr:contains(" + substr[i] + ")").find("input").prop('checked', true);
.find()
对所有嵌套元素进行深度搜索,而.children()
只会再遍历一层。
更新JSFiddle
参考文档:
.find()
.children()
相关文章:
- 启用文本框选中复选框数组
- 如何将复选框数组中的数据保存到数据库中
- 将复选框数组传递到 $_GET 的另一种方法 - 除了方括号
- JavaScript 需要从复选框数组中选中一个复选框
- JavaScript 需要从复选框数组中选中一个复选框
- 验证至少一个子复选框,对应于复选框数组的选中元素
- 获取角度 JS 中的复选框数组值
- 从点击按钮事件原型或 jQuery 发布复选框数组
- Angularjs,ng-click,如何在MongoDB中放置复选框数组
- 输入复选框数组,如果未选中,jQuery不会发送任何值
- 过帐值形成一个复选框数组
- 计数选中的复选框(数组)数&保存选中的复选框
- JavaScript中的HTML控制数组- 1的复选框数组返回零长度
- 如何访问复选框数组的第一个元素而不使用每个元素
- 我不能从html复选框数组传递一些值到我的php页面
- 使用Javascript禁用或启用复选框数组
- 无法检查javascript复选框数组元素是否被选中
- 浏览器崩溃-复选框数组Ajax (PHP)
- 如何在提交前检查复选框数组的内容
- 读取动态复选框数组在php/html