这是我的代码:
<div class="div">
<div id="picture"><img src="news1.jpg" /></div>
<div id="picture1"><img src="news2.jpg" /></div>
<div id="picture2"><img src="news3.jpg" /></div>
</div>
<script type="text/javascript">
var element = document.getElementById("picture")
var element1 = document.getElementById("picture1")
var element2 = document.getElementById("picture2")
var zdjecia = new Array("element", "element1", "element2");
for(var i=0; i < zdjecia.Length; i++)
{
zdjecia[i].style.opacity="1";
}
</script>
你能不能给我一些建议为什么这个循环不起作用?如果我发现问题,我会将settimeout和setTimeInterval添加到此,但此时我无法找到该循环的问题。
答案 0 :(得分:6)
不是将元素添加为字符串,而是按原样添加元素
var zdjecia = new Array(element, element1, element2);
并且应使用zdjecia.length
答案 1 :(得分:1)
其他人向您展示了您所犯的两个编码错误(.length
上的大写错误并使用字符串而不是直接变量引用),但我建议您对代码进行此更改:
var items = ["picture", "picture1", "picture2"];
for (var i = 0; i < items.length; i++) {
document.getElementById(items[i]).style.opacity = 1;
}
答案 2 :(得分:0)
更清洁的方法
<div class="div">
<div class="picture"><img src="news1.jpg" /></div>
<div class="picture"><img src="news2.jpg" /></div>
<div class="picture"><img src="news3.jpg" /></div>
</div>
<script>
var zdjecia = document.getElementsByClassName('picture');
for(var i = 0; i < zdjecia.length; i++) {
zdjecia[i].style.opacity = '1';
}
</script>
以下是您的代码出了什么问题
您需要遍历实际的DOM元素,而不是具有相同变量名var zdjecia = new Array(element, element1, element2);
的字符串。
此外,JavaScript区分大小写,并且您不小心将length
大写。 zdjecia.Length
应为zdjecia.length
。
[1, 2, 3].Length // => undefined
[1, 2, 3].length // => 3
此外,最好使用JavaScript的数组文字(方括号形式)来实例化一个新数组:
var zdjecia = [element, element1, element2];
JavaScript的数组文字比直接实例化更可预测。请考虑以下事项:
new Array(2, 1) // => [2, 1]
new Array(2) // => [undefined, undefined]
保留直接使用new Array()
来预先分配数组中的空间。
答案 3 :(得分:0)
更正后的代码:
var zdjecia = new Array(element, element1, element2); //Array of objects, not strings
for(var i=0; i < zdjecia.length; i++) //Use .length instead of .Length
{
zdjecia[i].style.opacity="1";
}
欢呼声
答案 4 :(得分:0)
您有一些小错误。首先,您将元素添加为字符串,而不是元素本身。其次,你大写了“#length;&#39; length&#39;在你的for循环中。不要这样做。
var zdjecia = new Array(element, element1, element2);
for(var i=0; i < zdjecia.length; i++){
zdjecia[i].style.opacity="1";
}