gpt4 book ai didi

javascript - getElementById + getElementsByTagName 在 javascript 控制台中给出类型错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:18:02 25 4
gpt4 key购买 nike

所以我正在尝试创建一个随机生成器,它显示许多隐藏图像中的一张 + 许多隐藏 DIV 中的一张。

对于图像,它工作正常,因为它们是页面上唯一的图像,但是当我尝试在另一个 div 标签内选择某些 div 标签时,我得到错误:

“未捕获的类型错误:无法读取未定义的属性‘style’”

我在 <div id="text"> 中有 9 个 div。这是我正在尝试运行的 javascript 代码:

function randomString() {

var chars = "123456789";
var string_length = 1;
var randomstring = '';
var x = document.getElementById("text").getElementsByTagName("div");

for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum+1);
}

for(var j=0; j<8 ;j++) {

document.getElementsByTagName("img")[j].style.opacity="0";
document.getElementById("text").getElementsByTagName("div")[j].style.display="none";
}

switch (randomstring*1) {

case 1: document.getElementsByTagName("img")[0].style.opacity="1";
x[0].style.display="block"; break;
case 2: document.getElementsByTagName("img")[1].style.opacity="1";
x[1].style.display="block"; break;
case 3: document.getElementsByTagName("img")[2].style.opacity="1";
x[2].style.display="block"; break;
case 4: document.getElementsByTagName("img")[3].style.opacity="1";
x[3].style.display="block"; break;
case 5: document.getElementsByTagName("img")[4].style.opacity="1";
x[4].style.display="block"; break;
case 6: document.getElementsByTagName("img")[5].style.opacity="1";
x[5].style.display="block"; break;
case 7: document.getElementsByTagName("img")[6].style.opacity="1";
x[6].style.display="block"; break;
case 8: document.getElementsByTagName("img")[7].style.opacity="1";
x[7].style.display="block"; break;
case 9: document.getElementsByTagName("img")[8].style.opacity="1";
x[8].style.display="block"; break;
}

document.randform.randomfield.value = randomstring;

}

这就是我在 HTML 中的内容:

 <DOCTYPE html>
<html>
<head>
<title>MTB Tricks Randomiser</title>
<link rel="stylesheet" type="text/css" href="randomizer.css" />
<script language="javascript" type="text/javascript" src="randomizer.js"></script>
</head>
<body>
<header>
<h3>Click the button to find out what your trick for today is!
<br> (If you dare...)
</h3>
</header>
<form name="randform">
<input type="button" value="Create Random String" onClick="randomString();">&nbsp;
<input type="text" name="randomfield" value="">
</form>
<div id="container">
<div id="images">
<img src="images/a.jpg" id="firstimage"/>
<img src="images/b.jpg" id="secondimage" />
<img src="images/c.jpg" id="thirdimage"/>
<img src="images/d.jpg" id="fourthimage"/>
<img src="images/e.jpg" id="fifthimage"/>
<img src="images/f.jpg" id="sixthimage"/>
</div>
<div id="text">
<div id="textone">
a
</div>
<div id="texttwo">
b
</div>
<div id="textthree">
c
</div>
<div id="textfour">
d
</div>
<div id="textfive">
e
</div>
<div id="textsix">
f
</div>
<div></div>
<div></div>
<div></div>
</div>
</div>
</body>
</html>

最佳答案

对于案例 7 - 9,它看起来会在 switch 语句中出错,因为 HTML 中只有 6 个图像。如 document.getElementsByTagName("img")[8].style.opacity="1"; 这样的行会失败。

关于javascript - getElementById + getElementsByTagName 在 javascript 控制台中给出类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20153016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com