JQuery - 迭代一个有价值的集合

时间:2018-04-23 03:25:20

标签: jquery loops

我有一组数据:

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]这样的索引可以正常工作,但有什么方法可以不需要硬编码吗?因为我不知道这个集合中会有多少价值。

任何人都可以帮我吗? 非常感谢!!

2 个答案:

答案 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;
&#13;
&#13;