-1

这个在 jquery 中的 find 实际上在做什么?

find('> a > img').attr('src');

我不确定 > 选择器。这里 它告诉用法是 (parent > child) 选择作为指定元素的直接子元素的所有元素。但是在这里 find 根本没有指定父级。那么这里发生了什么?

4

4 回答 4

2

这是一样的.children('a').children('img').attr('src')

于 2013-11-13T13:34:11.637 回答
1

它将在锚标记内生成源代码,但应指定父元素以查找 ex:

$('.parent-class').find('>a > img').attr('src');
于 2013-11-13T13:33:45.623 回答
0

您可以将一个对象传递给find(),该对象将充当父选择器。鉴于此标记:

<div class="my_div">
    <a href="#">
        <img src="images/my_img.jpg" />
    </a>
</div>

$('.my_div').find('> a > img')应将图像作为对象返回,而$('.my_div').find('> a > img').attr('src')应返回“my_img.jpg”

我还要指出,'>' 是一个 CSS 选择器;它不是 jQuery 独有的。在 vanilla CSS中.my_div > a > img,将选择任何<img>直接后代的任何内容<a>而后者又.my_div. 在大多数情况下,这种程度的特异性实际上是矫枉过正的。

于 2013-11-13T13:34:03.317 回答
0

这就是它应该如何工作:

var a = $("#outerDiv").find('> a > img').attr('src');
$("#mydiv").html(a);

http://jsfiddle.net/XLRGm/

于 2013-11-13T13:43:06.237 回答