如何获得 $(this)选择器的子级?

我的布局与此类似:

<div id="..."><img src="..."></div>

并希望使用 jQuery 选择器在单击时选择div内的子img

要获得div ,我有以下选择器:

$(this)

如何使用选择器获取子img

答案

jQuery 构造函数接受名为context的第二个参数,该参数可用于覆盖选择的上下文。

jQuery("img", this);

这与使用.find()一样,如下所示:

jQuery(this).find("img");

如果您想要的 img 是 clicked 元素的直接后代,则还可以使用.children()

jQuery(this).children("img");

您也可以使用

$(this).find('img');

这将返回所有div后代img

如果您需要将第一个img降级一个水平,则可以执行

$(this).children("img:first")

如果您的 DIV 标签后面紧跟着 IMG 标签,则还可以使用:

$(this).next();

直接的孩子是

$('> .child-class', this)

您可以找到父 div 的所有 img 元素,如下所示

$(this).find('img') or $(this).children('img')

如果您想要特定的 img 元素,可以这样写

$(this).children('img:nth(n)')  
// where n is the child place in parent list start from 0 onwards

您的 div 仅包含一个 img 元素。所以下面这是正确的

$(this).find("img").attr("alt")
                  OR
  $(this).children("img").attr("alt")

但是,如果您的 div 包含更多的 img 元素,如下所示

<div class="mydiv">
    <img src="test.png" alt="3">
    <img src="test.png" alt="4">
</div>

那么您将无法使用较高的代码来查找第二个 img 元素的 alt 值。因此,您可以尝试以下操作:

$(this).find("img:last-child").attr("alt")
                   OR
 $(this).children("img:last-child").attr("alt")

本示例显示了一个总体思路,即如何在父对象中找到实际对象。您可以使用类来区分子对象。那是简单而有趣的。即

<div class="mydiv">
    <img class='first' src="test.png" alt="3">
    <img class='second' src="test.png" alt="4">
</div>

您可以按照以下步骤进行操作:

$(this).find(".first").attr("alt")

更具体为:

$(this).find("img.first").attr("alt")

您可以使用以上代码查找或子代。有关更多信息,请访问儿童http://api.jquery.com/children/并找到http://api.jquery.com/find/ 。参见示例http://jsfiddle.net/lalitjs/Nx8a6/

在 jQuery 中引用孩子的方式。我在以下 jQuery 中进行了总结:

$(this).find("img"); // any img tag child or grandchild etc...   
$(this).children("img"); //any img tag child that is direct descendant 
$(this).find("img:first") //any img tag first child or first grandchild etc...
$(this).children("img:first") //the first img tag  child that is direct descendant 
$(this).children("img:nth-child(1)") //the img is first direct descendant child
$(this).next(); //the img is first direct descendant child

试试这个代码:

$(this).children()[0]

我不知道 DIV 的 ID,我认为您可以像这样选择 IMG:

$("#"+$(this).attr("id")+" img:first")

您可以使用以下两种方法之一:

1 find():

$(this).find('img');

2 个孩子:

$(this).children('img');