【发布时间】:2021-08-09 04:06:27
【问题描述】:
我正在尝试找到循环遍历字符串数组的最有效方法,然后单击与数组中找到的任何值匹配的相应复选框输入。
我想出了下面的方法,它有效,但我认为可能有更有效的解决方案。任何人有任何提示可以帮助我清理它吗?
<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>
【问题讨论】:
-
如果用户更改过滤器,您是否需要能够撤消此操作?
-
不确定是否需要。你的想法是什么?该数组是在页面加载时动态建立的。它是一个按钮,可以根据用户已知的数据库存储兴趣预设过滤器。
-
在不知道 UI 需要如何工作的情况下很难提出建议
-
好吧,如果不是很明显,我正在操纵一个预先存在的 UI 以实现开发人员不希望的可用性结果。我正在检测“我的”兴趣的值并检查输入以实现快速过滤结果。仍然可以根据需要使用当前 UI 进行选择/取消选择。