【发布时间】:2020-03-20 20:50:52
【问题描述】:
大家好,我使用 StackOverflow 已经有一段时间了,总能通过搜索框找到正确的答案,但这次我不能!这就是为什么我请求你的帮助。 我确信解决方案很简单,但我已经做了几次测试,我可以解决我的问题。
如果图像无法加载,我想制作它,更改与该图像相关的文本并将该文本设为红色 这已经奏效了,但穴居人风格,这就是为什么我需要你的帮助
document.getElementById("0").onerror = function() {Fu0()};
document.getElementById("1").onerror = function() {Fu1()};
document.getElementById("2").onerror = function() {Fu2()};
function Fu0() {
document.getElementById("0").style.display = "none";
var x = document.getElementById("T0");
x.innerHTML = "ERROR";
x.style.color = "red";
x.style.fontWeight = "bolder"
x.style.backgroundColor="800000";
};
function Fu1() {
document.getElementById("1").style.display = "none";
var x = document.getElementById("T1");
x.innerHTML = "ERROR";
x.style.color = "red";
x.style.fontWeight = "bolder"
x.style.backgroundColor="800000";
};
function Fu2() {
document.getElementById("2").style.display = "none";
var x = document.getElementById("T2");
x.innerHTML = "ERROR";
x.style.color = "red";
x.style.fontWeight = "bolder"
x.style.backgroundColor="800000";
};
我的 HTML 中有超过 20 次这样的内容,这意味着行数非常多 我正在考虑使用(i)循环运行 但我无法让它发挥作用。
我已经尝试过这个和一些变化,但都没有成功。
for (i = 0; i < 26; i++) {
document.getElementById(i).onerror = function() {Fu()};
}
function Fu() {
document.getElementById(i).style.display = "none";
var x = document.getElementById("T"+i);
x.innerHTML = "ERROR";
x.style.color = "red";
x.style.fontWeight = "bolder"
x.style.backgroundColor="800000";
};
如果你能帮助我,我将不胜感激, 提前致谢
【问题讨论】:
-
老实说,如果您没有其他框架,这是使用 jquery 的好时机。您可以使用类或数据选择器,并一次更改任意数量的可见元素上的所有这些道具。
-
您应该考虑使用 CSS 样式表,这样您就不会在
style上设置太多属性;这可能很慢。此外,虽然 HTML5 中的 ID 规则已经放宽,但使用全数字 ID 仍然不是向后兼容的好主意。 -
感谢@Trevor 我知道它的旧,但我不是这方面的专家,这就是我从学院记得的
-
@ControlAltDel 它没有,我希望它围绕几个选项进行迭代,但谢谢!
标签: javascript html loops