js中我用find找到子元素,比如var input = $(“.btn”).find()。。,那我用这个input去调其他的方法,例如bind方法,为什么input.bind()和$(input).bind()都可以正常使用?!
7条回答 默认 最新
- white_g 2017-07-12 05:18关注
首先要分清楚jquery对象和dom对象,用jquery选择器选出来的对象都是jquery对象。你用$('.btn').find();获得的依然是jquery对象,所有你的变量input就是个jquery对象。
jquery对象调用bind()是jq对象上的方法,所有你用input.bind()调用是没问题的。
那么问题来了,为什么$(input).bind()也可以正常调用了,因为如果你$()里面的参数是dom对象,会给你转为jquery对象,如果是jquery对象就不变,所有其实你用$(input)和你的input都是jquery对象。
既然都是jquery对象当然都可以调用bind();如果不清楚,你可以打印$('.btn').find()看看是对象。在打印一下$(input)是什么对象。
顺便提一点。 jquery对象转dom对象找下标。dom对象转jquery对象,用$()包起来。即var dom = document.getElmentById('test'); var $dom = $(dom) // dom对象转为jquery对象。如果不容易分清楚 建议对存jquery对象的变量名用$开头 var dom1 = $dom[0]; // jquery对象转为dom对象
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料