Jquery获取带有默认选项的选项

时间:2013-06-09 04:53:56

标签: jquery

我有以下选择元素。

<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元素。

4 个答案:

答案 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=''])")

这将选择除无值

之外的所有选项