Javascript 基本JQuery:数据属性+;儿童差异
我有一个基本的JQuery问题。。。我试图从列表元素中的两个子嵌套img标记中获取数据标题 HTML如下所示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
<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,但在现代浏览器中,这种差异可以忽略不计。就我个人而言,我不喜欢依赖文档结构;它往往会使代码变得非常脆弱。