javascript - js获取元素 如何获得$(this)选择器的子节点?



8 Answers

你也可以使用

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

这会返回所有作为div后代的img

js获取元素内容

我的布局类似于:

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

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

为了得到div ,我有这个选择器:

$(this)

如何使用选择器获取子img




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

$(this).next();



您可以在下面找到父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



您可以使用以下任一方法:

1找():

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

2个孩子():

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



您可以使用Child Selecor引用父级中可用的子元素。

$(' > img', this).attr("src");

以下是如果您没有引用$(this)并且您想在其他函数的div引用img

 $('#divid > img').attr("src");



这是一个功能代码,你可以运行它(这是一个简单的演示)。

单击DIV时,您可以从一些不同的方法获得图像,在这种情况下,“this”是DIV。

$(document).ready(function() {
  // When you click the DIV, you take it with "this"
  $('#my_div').click(function() {
    console.info('Initializing the tests..');
    console.log('Method #1: '+$(this).children('img'));
    console.log('Method #2: '+$(this).find('img'));
    // Here, i'm selecting the first ocorrence of <IMG>
    console.log('Method #3: '+$(this).find('img:eq(0)'));
  });
});
.the_div{
  background-color: yellow;
  width: 100%;
  height: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="my_div" class="the_div">
  <img src="...">
</div>

希望能帮助到你!




$(document).ready(function() {
  // When you click the DIV, you take it with "this"
  $('#my_div').click(function() {
    console.info('Initializing the tests..');
    console.log('Method #1: '+$(this).children('img'));
    console.log('Method #2: '+$(this).find('img'));
    // Here, i'm selecting the first ocorrence of <IMG>
    console.log('Method #3: '+$(this).find('img:eq(0)'));
  });
});
.the_div{
  background-color: yellow;
  width: 100%;
  height: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="my_div" class="the_div">
  <img src="...">
</div>






Related