javascript - 照片库上的数组无法正常工作

标签 javascript

我的下面的 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/

相关文章:

javascript - React-native 和 Firebase ListView 集成

javascript - Dojo MD5 散列不是以 base 16 表示法

javascript - 规避 ERROR Converting circular structure to JSON when doing JSON.stringify()?

javascript - 好的 jQuery Autocomplete 不是 jQuery UI 的一部分?

javascript - 在我的 Angular 模板中使用 &lt;style scoped>

javascript - 使用两个不同的 yAxis 比例 Highcharts 定义 yAxis 值

javascript - 根据用户输入显示和隐藏 DIV

javascript - Mocha ES6 巴别塔 "TypeError: undefined is not a function"

javascript - sifr 3 是否适用于所有桌面 A 级浏览器?

javascript - lodash 中 map 和 max 的奇怪行为