0

我有以下选择元素。

<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 对象。我将使用该选项制作另一个选择元素。

4

4 回答 4

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/

于 2013-06-09T04:57:55.127 回答
1

如果您需要选择所有具有某些非空值的选项:

$("option[value!='']")
于 2013-06-09T04:56:27.240 回答
0
$("#names option[value='']").remove();

This will remove the first option

To iterate

$("#names > option").each(function() {
    if( this.value != "")
        //do some thing
});

to select

   $("#names option[value!='']")
于 2013-06-09T04:55:33.133 回答
0
jQuery("#names option[value!='']")

或者

jQuery("#names :not(option[value=''])")

这将选择除没有值的选项之外的所有选项

于 2013-06-09T04:56:09.657 回答