jquery 从驻留在标记中的图像获取“alt”属性< a>

v09wglhw  于 2023-06-22  发布在  jQuery
关注(0)|答案(8)|浏览(195)

这应该是相当简单的,但由于某种原因,它不工作。
我想从驻留在标记内的图像中获取“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

t2a7ltrp

t2a7ltrp1#

这是因为image标签在ul标签内。Next只查找同一级别的标记。你得用

var alt = $(this).children("img").attr("alt");

编辑:包括额外的“那是失踪

0ejtzxu1

0ejtzxu12#

$(this).find('img').attr('alt');
pu82cl6c

pu82cl6c3#

尝试$(this).find('img')来选择链接中的某个元素。

fae0ux8s

fae0ux8s4#

$('img', this).attr('alt');

测试:http://jsbin.com/amado4

qncylg1j

qncylg1j5#

算了。我刚拿到...我已经意识到img不是<a>的兄弟,而是<a>的子
这是正确的语法

var alt = $(this).children("img").attr("alt");
im9ewurl

im9ewurl6#

难道.next不会选择下一个元素,也就是下一个Li而不是IMG吗?

nom7f22z

nom7f22z7#

试试这个测试和它的工作!!!

<div id="album-artwork">
<ul>
   <li><a href="javascript:void(0);"><img src="images/ajax-loader.gif" alt="ajax-loader" /></a></li>
   <li><a href="javascript:void(0);"><img src="images/close.png" alt="close" /></a></li>
   <li><a href="javascript:void(0);"><img src="images/copy.png" alt="copy" /></a></li>
</ul>
</div>

jQuery代码是

$(document).ready(function() {
        $("#album-artwork a").click(function(e) {
            e.preventDefault();

            var src = $(this).attr("href");
            //var alt = $(this).next("img").attr("alt");
            var alt = $(this).children().attr("alt");
            //find function also do the same thing if you want to use.
            /*var alt = $(this).find("img").attr("alt");*/

            alert(src); // ok!
            console.log(src); // ok!
            alert(alt); //output: not undefined now its ok!
            console.log(alt); //output: not undefined now its ok!
        });
    });

children()函数查找任何子项,但如果你想查找任何特定的子项,则定义如下的子项名称children("img")ORchildren("button")

zaqlnxep

zaqlnxep8#

不要复杂化:

$('img').on({'click': function(){
    var alt = this.alt;

相关问题