Javascript 在“选择元素”中启用所有选项

Javascript 在“选择元素”中启用所有选项,javascript,jquery,Javascript,Jquery,我有一个带有一些禁用选项的下拉列表。我希望启用所有选项 这是html: 但是我得到一个错误:TypeError:item.attr不是一个函数。这里怎么了? var select=$selectId; select.findoption:disabled.propdisabled,false JavaScript 有棱角的 脊梁骨 var select=$selectId; select.findoption:disabled.propdisabled,false JavaScript 有棱角

我有一个带有一些禁用选项的下拉列表。我希望启用所有选项

这是html:

但是我得到一个错误:TypeError:item.attr不是一个函数。这里怎么了?

var select=$selectId; select.findoption:disabled.propdisabled,false JavaScript 有棱角的 脊梁骨 var select=$selectId; select.findoption:disabled.propdisabled,false JavaScript 有棱角的 脊梁骨
更改取消打包的属性的正确方法是使用prop,而不是属性,请参见:

$selectId选项。属性“已禁用”,false; JavaScript 有棱角的 脊梁骨
更改取消打包的属性的正确方法是使用prop,而不是属性,请参见:

$selectId选项。属性“已禁用”,false; JavaScript 有棱角的 脊梁骨
由于选择器select.findoption返回一个类似于数组的结构,因此初始版本不起作用。这些元素不是jQuery对象,因此无法工作,这就是为什么会得到TypeError:item.attr不是函数

更新:对于@Liam,这将与.attr'disabled'一起工作,正如您从下面的代码中看到的,false。但我还是更喜欢

var select=$selectId; 选择.findoption.eachfunctionindex,项目{ $item.attr'disabled',false; }; JavaScript 有棱角的 脊梁骨
由于选择器select.findoption返回一个类似于数组的结构,因此初始版本不起作用。这些元素不是jQuery对象,因此无法工作,这就是为什么会得到TypeError:item.attr不是函数

更新:对于@Liam,这将与.attr'disabled'一起工作,正如您从下面的代码中看到的,false。但我还是更喜欢

var select=$selectId; 选择.findoption.eachfunctionindex,项目{ $item.attr'disabled',false; }; JavaScript 有棱角的 脊梁骨
这个应该很好用:

$selectId选项。每个选项,项目=>{ $items.attr'disabled',false }; JavaScript 有棱角的 脊梁骨
这个应该很好用:

$selectId选项。每个选项,项目=>{ $items.attr'disabled',false }; JavaScript 有棱角的 脊梁骨
使用$this.attr'disabled',false;在循环中或仅使用“$selectId option.removeAttrIsabled;”没有任何循环@PrashantShirke是的,它正在工作,而且$item.attr'disabled',false;奇怪的是,为什么我的初始版本不起作用?attr是jquery方法,所以只对jquery对象起作用。中的项。每个项都是DOM元素。可能重复使用$this.attr'disabled',false;在循环中或仅使用“$selectId option.removeAttrIsabled;”没有任何循环@PrashantShirke是的,它正在工作,而且$item.attr'disabled',false;奇怪的是,为什么我的初始版本不起作用?attr是jquery方法,所以只对jquery对象起作用。中的项。每个项都是DOM元素。两者的可能重复项都不起作用:TypeError:$..prop不是函数是否加载了jquery?您正在使用哪个版本的jquery?FYI disabled=false有意义@PrashantShirke不,它不是,残疾人是一种财产,它的使用是由它的存在或缺乏所暗示的。相等的部分永远不会被阅读。选项为或。是无效的HTML,尽管大多数浏览器都会处理它,但kindaSee两者都不起作用:TypeError:$..prop不是函数加载了jquery吗?您正在使用哪个版本的jquery?FYI disabled=false有意义@PrashantShirke不,它不是,残疾人是一种财产,它的使用是由它的存在或缺乏所暗示的。相等的部分永远不会被阅读。选项为或。是无效的HTML,尽管大多数浏览器都会处理它,kindaSee还有attr的语法错误,您不能将disabled属性设置为false。@Liam我可以,这是有效的:$item.attr'disabled',false;,虽然这是不正确的用法…@Liam是的,最好使用propals因为attr的语法错误,您不能将disabled属性设置为false。@Liam我可以,这是有效的:$item.attr'disabled',false;,虽然这是不正确的用法…@Liam是的,最好使用propWow!!!看来我把事情搞砸了。也许有人可以解释投票失败的原因,阻止我对其他人造成比必要时更多的伤害->根据我糟糕的回答哇!!!看来我把事情搞砸了。也许有人能解释投票失败的原因,阻止我对其他人造成必要的伤害->根据我糟糕的回答
<select id="selectId">
    <option value="JavaScript" disabled="">JavaScript</option>
    <option value="Angular">Angular</option>
    <option value="Backbone" disabled="">Backbone</option>
</select>
var select = $("#selectId");
select.find("option").each(function(index, item) {
  item.attr('disabled',false);
});