jQuery - 如果语句没有触发我的循环的第二次迭代,即使它是真的吗?

时间:2017-01-19 18:29:18

标签: jquery loops each

目标是在用户使用选择下拉菜单更改数量的条件下让脚本触发$('.actions').find('input[name="update_cart"]').click();。这按预期工作。问题在于我需要它在页面加载时再次触发相同的功能,以检查属性selected是否存在,这将起作用但是当有多个时它不存在选择测试这个。我已经看过脚本运行,当它似乎循环正常但我的if语句不会触发第二次迭代。很奇怪。有什么想法吗?

问题页面HTML的示例:

<div class="quantity_select">
<select name="cart[7d4db75ed7310cccac9772805faa7dcc][qty]" title="Qty" class="qty">
<option value="500" data-qty="500" data-price="0.27" selected="selected">
500&nbsp;envelopes&nbsp;$135.00</option>
<option value="1000" data-qty="1000" data-price="0.18">
1000&nbsp;envelopes&nbsp;$180.00</option>
<option value="2000" data-qty="2000" data-price="0.15">
2000&nbsp;envelopes&nbsp;$300.00</option>
<option value="5000" data-qty="5000" data-price="0.15">
5000&nbsp;envelopes&nbsp;$750.00</option>
</select>
</div>
<div class="quantity_select">
<select name="cart[7d4db75ed7310cccac9772805faa7dcc][qty]" title="Qty" class="qty">
<option value="500" data-qty="500" data-price="0.27">
500&nbsp;envelopes&nbsp;$135.00</option>
<option value="1000" data-qty="1000" data-price="0.18">
1000&nbsp;envelopes&nbsp;$180.00</option>
<option value="2000" data-qty="2000" data-price="0.15">
2000&nbsp;envelopes&nbsp;$300.00</option>
<option value="5000" data-qty="5000" data-price="0.15">
5000&nbsp;envelopes&nbsp;$750.00</option>
</select>
</div>

我的剧本:

jQuery(document).ready(function($) {
    $('body').on('change', 'select[name$="[qty]"]', function() {
        var that = this;
        setTimeout(function () {
                $(that).closest('form').find('input[name="update_cart"]').click();
    }, 300);
    });

    $('.quantity_select').each(function(qsi,qsobj){
        $('.qty').each(function(qi, qobj) {
        if ( !$("option[selected]").length ) {
                $('.actions').find('input[name="update_cart"]').click();
            }
        });
    });

});

0 个答案:

没有答案