如果图片不存在,则更新img src
如果图片不存在,则更新img src
我有两个可能显示的图片。如果第一张存在,就显示它;如果不存在,则显示第二张。这段代码将在多个页面中显示,所以如果第一张图片不存在,它将以"undefined"或"unknown"作为src显示。因此,我需要指定这两个情况。我尝试了以下方法,但一旦我添加了"or unknown",它就会出错:
$(document).ready(function() { var imageDef = $("#topBannerG.groupImageHidden img"); if (typeof imageDef == "undefined" || typeof imageDef === "unknown") { var imgHref = $('.groupImage img').attr("src"); $('#section-heading').prepend(' '); } else { var imgTopHref = $('#topBannerG img').attr("src"); $('#section-heading').prepend(' '); } });
当网页中的图片无法加载时,可以通过更新图片的src
来显示另一张可用的图片。在以上代码中,img
标签的src
属性被设置为一个不存在的图片路径invalid.jpg
。为了解决这个问题,我们可以使用JavaScript添加一个error
处理程序,当图片加载失败时调用该处理程序。在处理程序中,我们可以将src
更新为一个可用的图片路径https://i.imgur.com/CbsGGVp.jpg
。
具体的解决方法如下:
1. 首先,在页面中引入jQuery库:<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
2. 在需要更新图片的位置,使用img
标签,并设置src
为一个不存在的图片路径:<img src="invalid.jpg" />
3. 使用jQuery选择器选中图片,并为其添加一个error
处理程序:
$('#topBannerG img').on('error', function() { this.src = 'https://i.imgur.com/CbsGGVp.jpg'; });
4. 当图片加载失败时,error
处理程序会被触发,将src
更新为可用的图片路径。
通过以上步骤,我们可以在图片加载失败时更新src
,以显示一张可用的图片。这样可以确保网页上的图片始终能够正常显示,提升用户体验。
当页面加载完成时,执行以下代码:
首先,通过document.querySelectorAll方法获取所有id为"topBannerG",class为"groupImageHidden"的div元素下的img元素,并存储在imageDef1变量中。
然后,使用forEach方法遍历imageDef1数组中的每个img元素。对于每个img元素,检查其src属性是否为空或为""。如果是,则将imgHref变量设为'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRpFBWqwBWz1PssMHzubdkMu9dMhzd1HCScBqc0ReHNeCDvtYStWA',然后在id为"section-heading"的元素前插入以下代码:
如果img元素的src属性不为空,则将imgTopHref变量设为img元素的src属性值,然后在id为"section-heading"的元素前插入以下代码:
以上就是代码的逻辑。这段代码的目的是检查页面中id为"topBannerG",class为"groupImageHidden"的div元素下的img元素的src属性是否为空。如果为空,则将其src属性设为指定的默认图片链接。如果不为空,则保持不变。
这段代码的问题在于,它使用了错误的选择器语法,应该使用$("#topBannerG.groupImageHidden img")而不是document.querySelectorAll("#topBannerG.groupImageHidden img")。另外,还存在重复使用了相同id值的div元素的问题。
要解决这个问题,可以将选择器语法修改为$("#topBannerG.groupImageHidden img")。此外,还应该确保页面中的id值唯一,不要重复使用相同的id值。
以下是修改后的代码示例:
以上是对"Update img src if image does not exist"这个问题的原因和解决方法的整理。