我有一个包含一些禁用选项的下拉菜单。我想启用所有选项。
这是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/