如何对btn[0]正确使用.attr('disabled', false)方法
问题原因
- 通过jQuery选择器获取的
btn是封装了所有匹配DOM元素的jQuery实例对象,.attr()是jQuery原型链上的方法,仅jQuery对象可正常调用。 - 使用下标
[0]从jQuery集合中取值时,拿到的是原生DOM节点对象,这类对象没有挂载jQuery的相关方法,因此直接调用.attr()会报错失效。
实现方式
不需要使用原生DOM属性赋值的写法,只要把取到的原生DOM对象重新传入$()构造函数,包装为标准jQuery对象,就可以正常调用.attr()方法:
let btn = $("#btns").find(".btn-type03"); btn.attr('disabled', false); // 全集合调用,正常生效 $(btn[0]).attr('disabled', false); // 原生DOM转jQuery对象后调用,正常生效
也可以直接使用jQuery提供的.eq()方法,直接获取指定索引位置元素对应的jQuery包装对象,写法更简洁,不需要手动做包装转换:
// eq方法的索引从0开始计数,传入0即取第一个元素 btn.eq(0).attr('disabled', false);
注意:不要和
.get()方法混淆,.get(index)返回的也是原生DOM对象,和直接用下标取值的效果一致,无法直接调用jQuery方法。
内容的提问来源于stack exchange,提问作者유태양
相关产品推荐
相关产品推荐

