提问人:slothzen 提问时间:5/20/2021 最后编辑:slothzen 更新时间:5/20/2021 访问量:48
遍历数组并设置与数组值匹配的任何 html 输入的值
Loop through an array and set the value of any html inputs that match the array values
问:
我正在尝试找到遍历字符串数组的最有效方法,然后单击与数组中找到的任何值匹配的相应复选框输入。
我想出了以下方法,这很有效,但我认为可能有一个更有效的解决方案。有人有什么技巧可以帮助我清理这个问题吗?
<script>
var comodArr = ['Gold','Copper'];
jQuery(document).ready(function() {
jQuery("#setfilters").click(function() {
<!-- Commodities -->
if(jQuery.inArray("Gold", comodArr) !== -1) {
jQuery('li[val="Gold"] input').click();
}
if(jQuery.inArray("Silver", comodArr) !== -1) {
jQuery('li[val="Silver"] input').click();
}
if(jQuery.inArray("Copper", comodArr) !== -1) {
jQuery('li[val="Copper"] input').click();
}
});
});
</script>
<a class="btn btn-primary" href="#" id="setfilters" style="display: inline-block;"><i class="fas fa-arrow-down"> </i> Set Filters</a>
在下面回答后更新了代码。好多了!
<script>
var fieldVals = ['Gold', 'Copper'];
var fieldValArr = fieldVals.split(', ');
jQuery(document).ready(function() {
jQuery("#setfilters").click(function() {
fieldValArr.forEach(fieldVal => jQuery("li[val='" + fieldVal + "'] input").click());
});
});
</script>
答:
1赞
Barmar
5/20/2021
#1
遍历数组。
comodArr.forEach(comod => jQuery(`li[val="${comod}"] input`).click());
顺便说一句,你不应该像元素那样添加非标准属性。如果您需要添加自己的属性,请使用 ,例如val
data-XXX
data-val="Gold"
评论
0赞
slothzen
5/20/2021
完善!非常感谢。不是我正在操作的代码,而是同意元素的非标准吸引力。
评论