我想忽略/删除具有空白值或根本没有 value =“”属性的选择框中的所有选项,例如
<option>Any Option</option>
<option value="">Any Option</option>
这是我的jQuery:
$(function() {
// Create the dropdown base
$("<select />").appendTo("#pagination_container");
// Create default option "Go to..."
$("<option />", {
"selected": "selected",
"value" : "",
"text" : "Select Page..."
}).appendTo("#pagination_container select");
// Populate dropdown with menu items
$("#pagination_container a").each(function() {
var el = $(this);
$("<option />", {
"value" : el.attr("href"),
"text" : el.text()
}).appendTo("#pagination_container select");
});
$("#pagination_container select").change(function() {
window.location = $(this).find("option:selected").val();
});
});
答案 0 :(得分:1)
定位像这样的元素
$('option[value=""]');
并删除执行此操作
$('option[value=""]').remove();
答案 1 :(得分:0)
$("#pagination_container").find("option").each(function(index, el){
var $el = $(el);
var value = $el.attr("value");
if (value === "" || value === undefined)
$el.remove();
});
从jQuery 1.6开始,.attr()方法为属性返回undefined 尚未设定。 source
答案 2 :(得分:0)
您需要使用两部分选择器来实现:
$('option[value=""],option:not([value])').remove();
注意:请记住value=""
检查元素的初始状态。因此,如果您以后更改元素的值,而不一定是value属性,则可能会得到意外的结果。如果option
元素的值必然会发生变化,请使用filter()
代替[value=""]
。
答案 3 :(得分:0)
这个问题类似于这个问题:
检查链接并了解解决问题的许多不同方法。