Javascript 如何使用jquery获取图像?
我正在尝试添加数据标题和数据灯箱,并在其中获得图像 问题是,我有一个类似的输出,从第一个图像alt只 我们怎样才能修复它Javascript 如何使用jquery获取图像?,javascript,jquery,Javascript,Jquery,我正在尝试添加数据标题和数据灯箱,并在其中获得图像 问题是,我有一个类似的输出,从第一个图像alt只 我们怎样才能修复它 jQuery(文档).ready(函数($){ var imagesalt=$('.box a img').attr('alt'); $(“.box a”).attr(“数据标题”,imagesalt); $(“.box a”).attr(“数据灯箱”,imagesalt); }); 您的查询不明确,这就是原因 当您使用$(“.box a img”).attr(“alt”)
jQuery(文档).ready(函数($){
var imagesalt=$('.box a img').attr('alt');
$(“.box a”).attr(“数据标题”,imagesalt);
$(“.box a”).attr(“数据灯箱”,imagesalt);
});代码>
您的查询不明确,这就是原因
当您使用$(“.box a img”).attr(“alt”)
请求“alt”属性时,当然会接收许多对象,但是attr()
只返回第一个结果
在纯jQuery中,可以使用.each()
:
这会给你带来你期望的行为。试试这个:
.attr()方法仅获取匹配集中第一个元素的属性值。
但是,.attr()方法为匹配集中的每个元素设置属性值
使用“box”类对每个div进行迭代,然后找到其中的图像,获取该图像的alt文本,并将其作为div的数据属性应用。注意,我在console.log中输入了一个注释,以证明alt文本被正确找到。Ypu可以使用控制台检查器查看数据属性是否正确应用于DIV
$(文档).ready(函数(){
$(“.box”)。每个(函数(){
var imageAlt=$(this.find('img').attr('alt');
$(this.attr(“数据标题”,imageAlt);
console.log(imageAlt);
})
})
请将代码组织得更好一点。将html代码与javascript分开的脚本标记在哪里?请阅读我们的页面,了解关于什么是好答案的提示。这不是他们中的一个谢谢你,它工作得很好,但是如果图像没有alt怎么办?@AliNajm如果图像没有alt,变量imageAlt
将是undefined
。如果未定义imageAlt的类型,则可能需要包含类似于的内容,然后是imageAlt=“”
(CoffeeScript)。只是检查一下是否重要。如果没有,我需要补充alt@AliNajm如果这对您有效,请务必接受以下答案:-)
$(".box a img").each(function(){
var imageAlt = $(this).attr("alt");
var parent = $(this).parent();
parent.attr("data-lightbox", imageAlt);
parent.attr("data-title", imageAlt);
});
$('.box a img').each(function(){
$(this).parent().find("a").attr("data-title", $(this).attr("alt");
$(this).parent().find("a").attr("data-lightbox", $(this).attr("alt");
})