Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery获取图像?_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用jquery获取图像?

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”)

我正在尝试添加数据标题和数据灯箱,并在其中获得图像

问题是,我有一个类似的输出,从第一个图像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");
 })