jQuery 怎么获取 $(this) 子节点对象? 下面本篇文章给大家介绍一下 jQuery 获取 $(this) 子节点对象的方法. 有一定的参考价值, 有需要的朋友可以参考一下, 希望对大家有所帮助.
获取 $(this) 子节点对象的方法: find(element)
下面具体介绍一下:
首先来看看 jQuery 中的 $() 这个符号, 实际上这个符号在 jQuery 中相当于 jQuery(), 即 $(this)=jQuery(); 也就是说, 这样可以返回一个 jQuery 对象. 那么, 当你在网页中 alert($('#id')); 时, 会弹出一个 [object Object ], 这个 object 对象, 也就是 jQuery 对象了.
那么, 我们再回过头来说 $(this), 这个 this 是什么呢? 假设我们有如下的代码:
- $("#desktop a img").each(function(index){
- alert($(this));
- alert(this);
- }
那么, 这时候可以看出来:
alert($(this)); 弹出的结果是 [object Object ]
alert(this); 弹出来的是 [object htmlImageElement]
也就是说, 后者返回的是一个 HTML 对象 (本例中是遍历 HTML 的 img 对象, 所以为 HTMLImageElement). 很多人在使用 jQuery 的时候, 经常 this.attr('src'); 这时会报错 "对象不支持此属性或方法", 这又是为什么呢? 其实看明白上面的例子, 就知道错在哪里了:
很简单, this 操作的是 HTML 对象, 那么, HTML 对象中怎么会有 attr() 方法了, 所以, 在使用中, 我们不能直接用 this 来直接调用 jQuery 的方法或者属性.
明白了 $(this) 和 this 的区别, 再来看看这个例子:(假设, 我的页面中 a 标签包含 img, 并含有 src 属性), 当我在遍历的时候, 想取到 $(this) 下 img 中 src 的地址
- $("#desktop a").each(function(index){
- var imgurl=$(this).find('img').attr('src');
- alert(imgurl);
- }
其中 .find(element) 是返回一个用于匹配元素的 DOM 元素, 这样就可以取到想要的 src 地址了
更多 web 前端开发 https://www.html.cn/ 知识, 请查阅 HTML 中文网 !!
来源: http://www.css88.com/qa/jquery/18326.html