javascript - 启用选择元素中的所有选项

标签 javascript jquery

我有一个包含一些禁用选项的下拉菜单。我想启用所有选项。

这是html:

<select id="selectId">
    <option value="JavaScript" disabled="">JavaScript</option>
    <option value="Angular">Angular</option>
    <option value="Backbone" disabled="">Backbone</option>
</select>

JavaScript:

var select = $("#selectId");
select.find("option").each(function(index, item) {
  item.attr('disabled',false);
});

但是我收到一个错误:TypeError: item.attr is not a function。这里出了什么问题?

最佳答案

更改属性(disabaled 是属性而不是属性)的正确方法是使用 prop,请参阅 .prop() vs .attr() :

$("#selectId option").prop('disabled', false);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="selectId">
    <option value="JavaScript" disabled="">JavaScript</option>
    <option value="Angular">Angular</option>
    <option value="Backbone" disabled="">Backbone</option>
</select>

您可以设置.attr('disabled',false);但这不适用于 every HTML element 。删除属性(disabled 是属性而不是特性)的正确方法是 prop

您的 each 也不会返回 jquery 对象,它返回普通 DOM 元素,因此 TypeError: item.attr 不是函数。item 没有 attr 函数,因为它不是 jquery 对象。

关于javascript - 启用选择元素中的所有选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44564392/

相关文章:

javascript - 将 WebDriver 与 Backbone.js 结合使用时处理陈旧元素

javascript - 如何仅更改链接内的文本

javascript - 防止复制 Bootstrap 下拉菜单

javascript - 如何使用内联 CKEditor 4 在 contenteditable div 中显示 Twitter Bootstrap 弹出窗口?

javascript - 如何在按下回车键或返回键时阻止表单提交?

jQuery 选择器仅选择第一个元素

javascript - 如何暂停 setTimeout 调用?

javascript - 通过另一个函数透明地传递一个函数的参数

javascript - 使用 jQuery 返回隐藏的 <td> 值

javascript - 如何使用 Grunt 将 HTML 解析为 DOM