遍历数组并设置与数组值匹配的任何 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">&nbsp;</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>

遍历数组。

comodArr.forEach(comod => jQuery(`li[val="${comod}"] input`).click());

顺便说一句,您不应该向元素添加 val 等非标准属性。如果您需要添加自己的属性,请使用 data-XXX,例如data-val="Gold"