我有以下选择元素。
<select id="names" name="name">
<option value="">Please select</option>
<option value="1">Homba</option>
<option value="2">Bamba</option>
</select>
我想只获得
<option value="1">Homba</option>
<option value="2">Bamba</option>
我该怎么办?我想要选项html元素。不是jquery对象。我将使用该选项创建另一个select元素。
答案 0 :(得分:2)
$('#names option[value!=""]')
应返回一个jQuery对象,其中包含所有没有value=""
的选项元素。
<强>更新强>
如果您必须 option
元素,那么:
var myOptions = jQuery.makeArray($('#names option[value!=""]').clone());
将返回从option
复制的<select id="names" name="name">
元素数组,这些元素没有value=""
(并将其存储在名为myOptions
的变量中)。
另一方面,如果你想用匹配的选项创建另一个select
元素,返回的jQuery对象更有用:
var newSelect = $('<select />').append($('#names option[value!=""]').clone());
上面的语句将option
元素复制到一个新的select
元素中,并返回一个存储在newSelect
变量中的jQuery对象,可以随意添加到DOM中
这是演示的小提琴:http://jsfiddle.net/3SUy7/
答案 1 :(得分:1)
如果您需要选择具有某些非空值的所有选项:
$("option[value!='']")
答案 2 :(得分:0)
$("#names option[value='']").remove();
这将删除第一个选项
迭代
$("#names > option").each(function() {
if( this.value != "")
//do some thing
});
选择
$("#names option[value!='']")
答案 3 :(得分:0)
jQuery("#names option[value!='']")
或
jQuery("#names :not(option[value=''])")
这将选择除无值
之外的所有选项