找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 文档 工具 设计
查看: 101|回复: 0

巧用img onerror事件 给div更新 class

[复制链接]

2万

主题

1249

回帖

2万

积分

超级版主

教育辅助界扛把子

附加身份标识
精华
1
热心
7
听众
1
威望
48
贡献
14307
违规
0
书币
49981
注册时间
2020-4-8

论坛元老灌水之王

发表于 2023-7-15 09:04 | 显示全部楼层 |阅读模式
一个页面内有 多个类似的div  如:
[JavaScript] 纯文本查看 复制代码
<div class="sfbspic" style="text-align:center;"><img border="0" alt="" src="/image/s1.png" onerror="nofind();" /></div>
<div class="sfbspic" style="text-align:center;"><img border="0" alt="" src="/image/s2.png" onerror="nofind();" /></div>
<div class="sfbspic" style="text-align:center;"><img border="0" alt="" src="/image/s3.png" onerror="nofind();" /></div>
<div class="sfbspic" style="text-align:center;"><img border="0" alt="" src="/image/s4.png" onerror="nofind();" /></div>
<div class="sfbspic" style="text-align:center;"><img border="0" alt="" src="/image/s5.png" onerror="nofind();" /></div>
<div class="sfbspic" style="text-align:center;"><img border="0" alt="" src="/image/s6.png" onerror="nofind();" /></div>
<div class="sfbspic" style="text-align:center;"><img border="0" alt="" src="/image/s7.png" onerror="nofind();" /></div>
<div class="sfbspic" style="text-align:center;"><img border="0" alt="" src="/image/s8.png" onerror="nofind();" /></div>
<div class="sfbspic" style="text-align:center;"><img border="0" alt="" src="/image/s9.png" onerror="nofind();" /></div>
<div class="sfbspic" style="text-align:center;"><img border="0" alt="" src="/image/s10.png" onerror="nofind();" /></div>


当某些src指定的图片不存在时   将触发 onerror 事件    通过nofind方法  将指定class的div 隐藏   display:none

但存在一个问题  通过JavaScript寻找指定class的div 再更改这个div的class     因为是在同一个页面   所有符合条件的div都会被更改   都会隐藏。。。

采用如下方式;只需添加一个
[JavaScript] 纯文本查看 复制代码
<div class="sfbspic" style="text-align:center;"><img border="0" alt="" src="/image/sfbs.png" onerror="this.parentNode.className='sfbspic nosfbspic';" /></div>


[CSS] 纯文本查看 复制代码
<style type="text/css">
.nosfbspic{
display:none !important;
}
</style>


之前尝试的JavaScript代码一并贴出吧:

[JavaScript] 纯文本查看 复制代码
<script type="text/javascript">
<!--
function nofindsfbspic(){
	var div2 = document.getElementsByClassName("nosfbspic");
	var i;
    for (i=0;i<div2.length;i++ )
    {
		div2[i].style.display="none";
    } 
}
//-->
</script>
<script type="text/javascript">
<!--
function nofind(){
	var div1 = document.getElementsByClassName("sfbspic");
     //var img=event.srcElement;
    //img.src="/static/image/common/nopic.png";
    //img.onerror=null; //控制不要一直跳动
	var i;
    for (i=0;i<div1.length;i++ )
    {
		//div[i].style.display="none";
		div1[i].className="nosfbspic";
    } 
	//div.style.display = "none";
	nofindsfbspic();
}
//-->
</script>

Great works are not done by strength, but by persistence! 历尽艰辛的飞升者,成了围剿孙悟空的十万天兵之一。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号


免责声明:
本站所发布的第三方软件及资源(包括但不仅限于文字/图片/音频/视频等仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢某程序或某个资源,请支持正版软件及版权方利益,注册或购买,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To: admin@cdsy.xyz

QQ|Archiver|手机版|小黑屋|城东书院 ( 湘ICP备19021508号-1|湘公网安备 43102202000103号 )

GMT+8, 2024-11-21 16:30 , Processed in 0.056040 second(s), 28 queries .

Powered by Discuz! CDSY.XYZ

Copyright © 2019-2023, Tencent Cloud.

快速回复 返回顶部 返回列表