目标是在用户使用选择下拉菜单更改数量的条件下让脚本触发$('.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 envelopes $135.00</option>
<option value="1000" data-qty="1000" data-price="0.18">
1000 envelopes $180.00</option>
<option value="2000" data-qty="2000" data-price="0.15">
2000 envelopes $300.00</option>
<option value="5000" data-qty="5000" data-price="0.15">
5000 envelopes $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 envelopes $135.00</option>
<option value="1000" data-qty="1000" data-price="0.18">
1000 envelopes $180.00</option>
<option value="2000" data-qty="2000" data-price="0.15">
2000 envelopes $300.00</option>
<option value="5000" data-qty="5000" data-price="0.15">
5000 envelopes $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();
}
});
});
});