这应该是相当简单的,但由于某种原因,它不工作。
我想从驻留在标记内的图像中获取“alt”属性
<div id="album-artwork">
<ul>
<li><a href="link to large image"><img src="thumbnail" alt="description of the image" /></a></li>
...
</ul>
</div>
$("#album-artwork a").click(function(e) {
e.preventDefault();
var src = $(this).attr("href");
var alt = $(this).next("img").attr("alt");
alert(src); // ok!
alert(alt); //output: undefined
});
为什么next()不起作用?有更好的解决方案吗?
提前感谢Marco
8条答案
按热度按时间t2a7ltrp1#
这是因为image标签在ul标签内。Next只查找同一级别的标记。你得用
编辑:包括额外的“那是失踪
0ejtzxu12#
pu82cl6c3#
尝试
$(this).find('img')
来选择链接中的某个元素。fae0ux8s4#
或
测试:http://jsbin.com/amado4
qncylg1j5#
算了。我刚拿到...我已经意识到
img
不是<a>
的兄弟,而是<a>
的子这是正确的语法
im9ewurl6#
难道.next不会选择下一个元素,也就是下一个Li而不是IMG吗?
nom7f22z7#
试试这个测试和它的工作!!!
jQuery代码是
children()
函数查找任何子项,但如果你想查找任何特定的子项,则定义如下的子项名称children("img")
ORchildren("button")
。zaqlnxep8#
不要复杂化: