我的下面的 JS 脚本有问题。我创建了一个照片库,每张照片下方都有标题。我使用数组来创建标题。但是,在第一页上,标题为 1;第二页的标题是,(逗号);第三个,标题是2;在第四页上,标题是 ,(逗号) 等。我希望标题是 1, 2, 3, 4, 5, 6。我很困惑为什么逗号可以作为标题。有什么解决办法吗?
var num;
var name = ["", "1", "2", "3", "4", "5", "6"];
function change(n) {
num = n;
var path = "img/" + n + '.png';
document.getElementById('text').innerHTML = name[n];
document.getElementsByTagName("img")[0].src = path;
return false;
}
function next() {
if (num >= 6) {
num = 1;
} else {
num = num + 1;
}
change(num);
}
function prev() {
if (num <= 1) {
num = 6;
} else {
num = num - 1;
}
change(num);
}
<body onload="change(1)">
<a href="#" onclick="prev()">Prev</a>
<a href="#" onclick="change(1)">1</a>
<a href="#" onclick="change(2)">2</a>
<a href="#" onclick="change(3)">3</a>
<a href="#" onclick="change(4)">4</a>
<a href="#" onclick="change(5)">5</a>
<a href="#" onclick="change(6)">6</a>
<a href="#" onclick="next()">Next</a>
<br>
<br>
<img src="" alt="" style="width:600px; height:320px">
<br>
<p id="text"></p>
</body>
最佳答案
由于您在全局范围内定义了 name
,因此它会覆盖 window.name
属性(字符串),因此您的数组将转换为字符串 , 1,2,3,4,5,6
而不是数组。使用不同的变量名称(例如 names
)来避免这种情况。另外,最好的方法是使用事件处理程序并将 html 与 javascript 分开,这样您就可以使用不会用全局变量污染 window
对象的命名空间。
https://developer.mozilla.org/en-US/docs/Web/API/Window/name
关于javascript - 照片库上的数组无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33568520/