如果 select 菜单没有 select 属性,则使用 jQuery 执行功能
Using jQuery to perform a function IF a select menu has no select attribute
所以,我正在处理几个不同的插件,如果 select 菜单没有属性,我需要能够执行一个功能。我对此感到困惑,并查找了许多不同的方法,但到目前为止都没有成功。
我有一个 select 结构如下:
<div class="quantity_select">
<select name="cart[d3207bfbf377b2c6a2d5f0f397ecef61][qty]" title="Qty" class="qty">
<option value="500" data-qty="500" data-price="0.27" selected="">
500 envelopes 5.00 </option>
<option value="1000" data-qty="1000" data-price="0.18">
1000 envelopes 0.00 </option>
<option value="2000" data-qty="2000" data-price="0.15">
2000 envelopes 0.00 </option>
<option value="5000" data-qty="5000" data-price="0.15">
5000 envelopes 0.00 </option>
</select>
</div>
而且我需要能够验证这是或不是 selected 并根据结果执行或不执行功能。所以这是我正在使用的脚本:
$('.qty').each(function(i, obj) {
if ( !$('option:selected',this).index() <= 0) {
$('.actions').find('input[name="update_cart"]').click();
}
});
会有多个select具有相同的class qty
所以它需要循环检查每个
我不确定我做错了什么。是 'option:selected',this
吗?我想这行得通。控制台也没有抛出任何错误,所以我实际上并没有验证它是否被选中?
我的测试页上有两个 select,一个有 selected=""
,一个没有,所以它应该触发。
您可能想试试:
$('.qty').each(function(i, obj) {
if ( $('option:selected',this).length > 0) {
$('.actions').find('input[name="update_cart"]').click();
}
});
$('option:selected',this) returns 选定选项的数组,因此检查数组的索引可能不起作用。
所以,我正在处理几个不同的插件,如果 select 菜单没有属性,我需要能够执行一个功能。我对此感到困惑,并查找了许多不同的方法,但到目前为止都没有成功。
我有一个 select 结构如下:
<div class="quantity_select">
<select name="cart[d3207bfbf377b2c6a2d5f0f397ecef61][qty]" title="Qty" class="qty">
<option value="500" data-qty="500" data-price="0.27" selected="">
500 envelopes 5.00 </option>
<option value="1000" data-qty="1000" data-price="0.18">
1000 envelopes 0.00 </option>
<option value="2000" data-qty="2000" data-price="0.15">
2000 envelopes 0.00 </option>
<option value="5000" data-qty="5000" data-price="0.15">
5000 envelopes 0.00 </option>
</select>
</div>
而且我需要能够验证这是或不是 selected 并根据结果执行或不执行功能。所以这是我正在使用的脚本:
$('.qty').each(function(i, obj) {
if ( !$('option:selected',this).index() <= 0) {
$('.actions').find('input[name="update_cart"]').click();
}
});
会有多个select具有相同的class qty
所以它需要循环检查每个
我不确定我做错了什么。是 'option:selected',this
吗?我想这行得通。控制台也没有抛出任何错误,所以我实际上并没有验证它是否被选中?
我的测试页上有两个 select,一个有 selected=""
,一个没有,所以它应该触发。
您可能想试试:
$('.qty').each(function(i, obj) {
if ( $('option:selected',this).length > 0) {
$('.actions').find('input[name="update_cart"]').click();
}
});
$('option:selected',this) returns 选定选项的数组,因此检查数组的索引可能不起作用。