我有一组数据:
q: "5,1,3,4"
我需要获取这些值,因此我可以预选复选框
$('input[data-value=5]').prop('checked', true);
$('input[data-value=1]').prop('checked', true);
$('input[data-value=3]').prop('checked', true);
$('input[data-value=4]').prop('checked', true);
我知道使用像q[0]
这样的索引可以正常工作,但有什么方法可以不需要硬编码吗?因为我不知道这个集合中会有多少价值。
任何人都可以帮我吗? 非常感谢!!
答案 0 :(得分:5)
将q
拆分为带逗号的数组并遍历每个值以选择所需的input
并更改prop
q.split(",").forEach(function(value){
$('input[data-value='+ value +']').prop('checked', true);
})
答案 1 :(得分:3)
您可以使用简单的 .each()
循环通过jQuery实现此功能,或使用vanilla JavaScript中的 Array.prototype.foreach()
。
如果你真的有一串数字开头,你需要在逗号上运行 .split()
将它们拆分成一个数组。
这可以在以下示例中看到:
// If you have a string rather than an array
const q = "5,1,3,4";
const values = q.split(",");
// If you start with an array
//const values = [5, 1, 3, 4];
$(values).each(function(index, value) {
$('input[data-value=' + value + ']').prop('checked', true);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" data-value="1">
<input type="checkbox" data-value="2">
<input type="checkbox" data-value="3">
<input type="checkbox" data-value="4">
<input type="checkbox" data-value="5">
&#13;