如果我找到控件的方式如下,如何设置jQuery中下拉列表的索引:
$("*[id$='" + originalId + "']")
Run Code Online (Sandbox Code Playgroud)
我是这样做的,因为我正在动态创建控件,并且由于在使用Web窗体时更改了id,我发现这是一个解决方法,可以找到一些控件.但是一旦我有了jQuery对象,我就不知道如何将所选索引设置为0(零).
我有两个HTML select框.select当我在另一个选项中进行选择时,我需要重置一个框.
<select id="name" >
<option value="">select all</option>
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
<select id="name2" >
<option value="">select all</option>
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
当我选择第一个select(即id="name")的选项时,我需要将第二个重置select为select all; 类似地,当我选择第二个select(即id="name2")的选项时,我需要将第一个重置select为select all.
我怎样才能做到这一点?
以下jQuery 1.9和1.10+之间的行为有所不同:
<select id="s1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
$('#s1 option[value=1]').hide();
$('#s1').val('');
Run Code Online (Sandbox Code Playgroud)
此代码背后的想法是在隐藏一些选项(包括当前选定的选项)后选择第一个非隐藏选项.
由于jQuery 1.10+ $('#s1').val('');不再选择第一个非隐藏选项,而且.val(<some proper value for the particular select box>)工作正常.
尝试以下方法不帮助,因为双方selectedIndex并.first().val()考虑隐藏的选项:
$("#s1").prop("selectedIndex", 0);
$('#s1 option').first().prop('selected', true);
我想到的下一件事(也由C-link建议)也不起作用,因为:visible选择器对选择选项不起作用.
$('#s1 option:visible').first().prop('selected', true);
寻找一些通用的方法(不依赖于知道什么是特定值以及隐藏了哪些选项)来实现与$('#s1').val('');旧jQuery 相同的行为.