仅获取具有自定义索引的选择
Get only selects with custom index
我在手动测试 Web 应用程序期间使用简单的脚本来填充示例数据。主要是一行来填充文本框。
但现在我遇到了一个情况,我有多个下拉菜单,我只需要填充那些空的(相同 class,总是不同的)。
我目前的解决方案:
$('#btn').click(function (){
$('select').each(function (index) {
if($(this).prop('selectedIndex') == 0) {
$(this).prop('selectedIndex', 2);
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="ddl" id="target1">
<option value="0"></option>
<option value="1">OPTION 1</option>
<option value="2">OPTION 2</option>
<option value="3">OPTION 3</option>
</select>
<select class="ddl" id="target2">
<option value="0"></option>
<option value="1">OPTION 1</option>
<option value="2">OPTION 2</option>
<option value="3" selected="selected">OPTION 3</option>
</select>
<button id="btn" class="btn">Fill empty boxes</button>
我的问题是:jQuery 是否有任何选择器来获取所有选择索引为 0(无选择)的下拉菜单?
即 $(".ddl[selectedIndex='0']").doStuff()
[不起作用]?
我想像 $(selector).prop('selectedIndex',2)
那样做整件事。
您可以链接选项 selector、:first-child
selector 和 :selected
selector。这将 return select 编辑的所有第一个选项元素。然后使用 closest 遍历到 select 元素并设置 selectedIndex:
$('option:first-child:selected').closest('select').prop('selectedIndex', 2);
$('#btn').click(function (){
$('option:first-child:selected').closest('select').prop('selectedIndex', 2);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="ddl" id="target1">
<option value="0"></option>
<option value="1">OPTION 1</option>
<option value="2">OPTION 2</option>
<option value="3">OPTION 3</option>
</select>
<select class="ddl" id="target2">
<option value="0"></option>
<option value="1">OPTION 1</option>
<option value="2">OPTION 2</option>
<option value="3" selected="selected">OPTION 3</option>
</select>
<select class="ddl" id="target3">
<option value="0"></option>
<option value="1">OPTION 1</option>
<option value="2">OPTION 2</option>
<option value="3">OPTION 3</option>
</select>
<button id="btn" class="btn">Fill empty boxes</button>
我在手动测试 Web 应用程序期间使用简单的脚本来填充示例数据。主要是一行来填充文本框。
但现在我遇到了一个情况,我有多个下拉菜单,我只需要填充那些空的(相同 class,总是不同的)。 我目前的解决方案:
$('#btn').click(function (){
$('select').each(function (index) {
if($(this).prop('selectedIndex') == 0) {
$(this).prop('selectedIndex', 2);
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="ddl" id="target1">
<option value="0"></option>
<option value="1">OPTION 1</option>
<option value="2">OPTION 2</option>
<option value="3">OPTION 3</option>
</select>
<select class="ddl" id="target2">
<option value="0"></option>
<option value="1">OPTION 1</option>
<option value="2">OPTION 2</option>
<option value="3" selected="selected">OPTION 3</option>
</select>
<button id="btn" class="btn">Fill empty boxes</button>
我的问题是:jQuery 是否有任何选择器来获取所有选择索引为 0(无选择)的下拉菜单?
即 $(".ddl[selectedIndex='0']").doStuff()
[不起作用]?
我想像 $(selector).prop('selectedIndex',2)
那样做整件事。
您可以链接选项 selector、:first-child
selector 和 :selected
selector。这将 return select 编辑的所有第一个选项元素。然后使用 closest 遍历到 select 元素并设置 selectedIndex:
$('option:first-child:selected').closest('select').prop('selectedIndex', 2);
$('#btn').click(function (){
$('option:first-child:selected').closest('select').prop('selectedIndex', 2);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="ddl" id="target1">
<option value="0"></option>
<option value="1">OPTION 1</option>
<option value="2">OPTION 2</option>
<option value="3">OPTION 3</option>
</select>
<select class="ddl" id="target2">
<option value="0"></option>
<option value="1">OPTION 1</option>
<option value="2">OPTION 2</option>
<option value="3" selected="selected">OPTION 3</option>
</select>
<select class="ddl" id="target3">
<option value="0"></option>
<option value="1">OPTION 1</option>
<option value="2">OPTION 2</option>
<option value="3">OPTION 3</option>
</select>
<button id="btn" class="btn">Fill empty boxes</button>