Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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 如何设置<;img>;同一页面中另一段HTML的alt标记_Javascript_Jquery - Fatal编程技术网

Javascript 如何设置<;img>;同一页面中另一段HTML的alt标记

Javascript 如何设置<;img>;同一页面中另一段HTML的alt标记,javascript,jquery,Javascript,Jquery,我有一个网站,它是在我对这项业务的了解比现在更少的时候建立的。该网站包含大约200页和数千张图片。显示它们的HTML通常如下所示: <div class="pic"> <a onclick="loadImage('filename.jpg')" href="#4"><img src="filename.jpg" alt="missing img"></a> <div class="imgcapt"><i>Caption&

我有一个网站,它是在我对这项业务的了解比现在更少的时候建立的。该网站包含大约200页和数千张图片。显示它们的HTML通常如下所示:

<div class="pic">
<a onclick="loadImage('filename.jpg')" href="#4"><img   src="filename.jpg" alt="missing img"></a>
<div class="imgcapt"><i>Caption</i></div>
</div>

说明文字
这将在页面上放置一个图像,并在其下方添加标题。单击图像会在新窗口中打开图像的较大版本。大多数图片都有标题,但不是全部


我想做的是用imgcapt div的内容替换现有的alt文本(如果存在)。理想情况下,我希望在源文件中执行此操作,但如果不可能,则添加一些JavaScript,以便在页面加载时执行此操作。我看过类似问题的各种答案,但找不到任何匹配的答案。有人能为我指出这两种方法的正确方向吗?

您可以尝试使用jQuery选择pic类的所有div

然后,对于每个匹配,获取imgcapt类中i的文本,并将属性alt设置为a

$( document ).ready(function() {
    $('.pic').each(function(el) {
    var imgCaption = $(this).find('i').text();
    $(this).find('img').prop('alt', imgCaption);
  })
});
这是jquery不需要的小提琴, 您可以检查您的document.querySelector('div.imgcapt')
.innerHTML

并使用element.setAttribute设置alt标记首先,不应使用内联HTML事件处理程序(
onclick=…
),因为它们创建意大利面代码,导致全局匿名函数代理修改
绑定,并且不遵循DOM事件标准

其次,您根本不需要将图像包装在锚定标记中。只需将图像的单击事件连接到您的函数

因此,这就可以做到:

window.addEventListener(“加载”,函数(){
var imgs=document.querySelectorAll(“img”);
对于(变量i=0;i

说明文字