如何将点击事件中的#M1选择器改为div的子input元素?
解决点击div启用对应子input的问题
嘿,针对你提到的场景——需要点击input所在的div就移除该input的disabled属性,同时摆脱对ID选择器的依赖(毕竟50个input一个个加ID太麻烦),我帮你调整了代码:
修改后的jQuery版本代码
<div onclick="$(this).children('input').removeAttr('disabled')"> <input type="text" disabled /> </div>
代码说明
$(this)会指向当前被点击的那个div元素,这样每个div的点击操作只会作用于自己包含的input,不会影响其他元素children('input')专门选择当前div的直接子元素里的input,比更宽泛的find()性能更好,毕竟你的input就是div的直接子节点- 这样你可以批量复制这个div-input结构,不用给每个input设置唯一ID,完美适配你有50个这类字段的场景,也避免了切换焦点时遍历所有input的性能损耗
额外提供原生JS版本(如果不想依赖jQuery)
要是项目里不想用jQuery,原生JS的写法也很简洁:
<div onclick="this.querySelector('input').removeAttribute('disabled')"> <input type="text" disabled /> </div>
内容的提问来源于stack exchange,提问作者verlager
相关产品推荐
相关产品推荐

