问题描述
在jQuery
的javascript
开发中,当前有类似如下的HTML结构代码:
<div id="..."><img src="..."></div>
现在想使用jQuery
选择器来得到当点击div
元素时div
里的img
子节点。
当点击div
元素时,我们可以使用如下的选择器来获取到div
,如下:
$(this)
但要获取到div
元素中的img
子节点,应该怎样实现呢?
方案一
jQuery
构造函数接受第二个名为context的参数,可用于覆盖选择的上下文。因此,可像如下这样使用:
jQuery("img",this);
这种方式类似.find()
方法的使用,如下:
jQuery(this).find("img");
此外,如果img
元素是div
元素的直接后代节点,我们还可以使用.children()
方法来获取,如下:
jQuery(this).children("img");
方案二
使用.find()
方法来获取,如下:
$(this).find("img");
注意:此方法会返回
div
元素中所有的匹配的img
子节点元素集合。
方案三
使用.children()
方法来获取,如果只需要返回第一个匹配的img
元素,还可以添加选择器的修饰,如下:
$(this).children("img:first");
方案四
如果img
是div
的直接子节点,则可以:
$('> .child',this)[0];
或者
$(this).children()[0]
方案五
$(this).find("img"); // 返回所有的子节点或者子孙节点的img集合
$(this).children("img"); // 返回所有直接后代(子节点)的img集合
$(this).find("img:first") // 返回所有的子节点或者子孙节点的第一个img的集合
$(this).children("img:first") // 返回直接后代(子节点)的第一个img元素
$(this).children("img:nth-child(1)") // 返回直接后代(子节点)的第一个img元素
$(this).next(); // 返回直接后代(子节点)的第一个img元素
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册