jQuery从没有值属性

时间:2015-08-12 20:25:06

标签: javascript jquery

我想忽略/删除具有空白值或根本没有 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();
  });

});

4 个答案:

答案 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)

这个问题类似于这个问题:

检查链接并了解解决问题的许多不同方法。