Javascript 基本JQuery:数据属性+;儿童差异

Javascript 基本JQuery:数据属性+;儿童差异,javascript,jquery,html,Javascript,Jquery,Html,我有一个基本的JQuery问题。。。我试图从列表元素中的两个子嵌套img标记中获取数据标题 HTML如下所示 <li> <a href="/pages/..."> <img src="..." data-title="Norio Matsumoto" /> </a> <h4> <a href="/pages/..."></a> <a

我有一个基本的JQuery问题。。。我试图从列表元素中的两个子嵌套img标记中获取数据标题

HTML如下所示

<li>
    <a href="/pages/...">
        <img  src="..." data-title="Norio Matsumoto" /> 
    </a>
    <h4>
        <a href="/pages/..."></a>
        <a href="/pages/..."></a>
    </h4>
</li>
第二个正在工作

$(this).children('a').children('img').data('title')
children('firstChild nestedChild')
与写
children('firstChild')。children('nestedChild')

真诚地, 迷茫

注意

请仔细阅读问题,我不是在寻找代码编辑或代码修复,我只是在问一个jquery问题。

函数
.children()
只查看立即的子体。因为不存在作为
  • 的直接后代的
    标记,所以永远不会有任何匹配项

    这将有助于:

    $(this).find('a > img').data('title')
    
    尽管如果有更深层嵌套的
    +
    组,事情可能会变得奇怪。

    函数
    .children()
    只查看直接的子体。因为不存在作为
  • 的直接后代的
    标记,所以永远不会有任何匹配项

    这将有助于:

    $(this).find('a > img').data('title')
    

    尽管如果存在嵌套更深的
    +
    组,事情可能会变得奇怪。

    。子元素将只返回与选择器匹配的选定元素的直接子元素。由于直接子元素是定位标记而不是图像标记,因此未返回。子元素将仅返回与选择器匹配的选定元素的直接子元素。因为直接子对象是锚定标记而不是图像标记,所以没有返回它们。find()方法是否比.children()慢得多。children()因为find()必须遍历,children()只会更深一步?@AlexNeigher这取决于上下文(选择了多少元素,选择了多少,整个dom有多大,使用的是什么浏览器等等。)@AlexNeigher也许,但在现代浏览器中,差别可以忽略不计。就我个人而言,我不喜欢依赖文档结构;它会使代码变得非常脆弱。find()方法不是比.children()慢很多吗?children()因为find()必须遍历,而children()只会更深一层?@AlexNeigher这取决于上下文(选择了多少元素,选择了多少元素,整个dom有多大,使用的是什么浏览器,等等)@也许是AlexNeigher,但在现代浏览器中,这种差异可以忽略不计。就我个人而言,我不喜欢依赖文档结构;它往往会使代码变得非常脆弱。