jquery阻止<select>到第一个选项

hal*_*man 4 jquery select

我有这样的代码:

<select name="aa">
    <option>a</option>
    <option>b</option>
    <option>c</option>
</select>
Run Code Online (Sandbox Code Playgroud)

有一种方法可以停止打开我所有表单的选择并只显示第一个选择在这个例子中只有一个吗?

在此先感谢ciao h

Cas*_*jne 7

使用:gt(0)过滤器删除所有其他选项(0)是这样的索引:

 $("select[name='aa'] option:gt(0)").remove();
Run Code Online (Sandbox Code Playgroud)

或者像这样禁用它们:

 $("select[name='aa'] option:gt(0)").attr("disabled", "disabled");
Run Code Online (Sandbox Code Playgroud)

并使用:eq(0)过滤器选择一个项目(0)是这样的索引:

 $("select[name='aa'] option:eq(0)").attr("selected", "selected");
Run Code Online (Sandbox Code Playgroud)

反过来可以:not用过滤器完成:

$("select[name='aa'] :not(option:gt(0))").attr("disabled", "disabled");
Run Code Online (Sandbox Code Playgroud)

:lt过滤器:

$("select[name='aa'] option:lt(1)").attr("disabled", "disabled");
Run Code Online (Sandbox Code Playgroud)

只需指定一个空字符串 .attr("disabled", "");.attr("selected", "");删除一个属性设置.

在这里小提琴

翻转/翻转值我想你需要第二个(隐藏)选择:

在这里小提琴

// hide items
var src = $("select[name='aa'] option:eq(0)");
var tar = $("select[name='ab']").hide();

tar.append(src.clone())
src.remove();


//reshow items:
src = $("select[name='ab'] option:eq(0)");
tar = $("select[name='aa']")

tar.prepend(src.clone())
src.remove(); 
Run Code Online (Sandbox Code Playgroud)