javascript - 使用 for 循环访问 Jquery 内的数组

标签 javascript jquery html

大家好,我正在尝试循环 2 个数组,一个数组处理按钮 Id,另一个数组处理文本。但是它似乎无法迭代文本数组。当我尝试 window.alert 值时,它返回未定义。

var buttonIdArray = ['#one', '#two']
var textArray = ['this is button one', 'this is button two']

function buttonDetails() {
  for (var i = 0; i < buttonIdArray.length; i++) {
    $(buttonIdArray[i]).click(function() {
      window.alert(textArray[i])
    })
  }
}
<button id ='one'>one</button>
<button id ='two'>two</button>

最佳答案

由于 .click() 上下文中的 scope 不同,您需要先从 textArray 获取文本,如下所示:

var buttonIdArray = ['#one', '#two']
var textArray = ['this is button one', 'this is button two']

function buttonDetails() {
  for (var i = 0; i < buttonIdArray.length; i++) {
    const text = textArray[i]
    $(buttonIdArray[i]).click(function() {
      window.alert(text)
    })
  }
}

buttonDetails()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='one'>one</button>
<button id='two'>two</button>

关于javascript - 使用 for 循环访问 Jquery 内的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49617671/

相关文章:

javascript - JS中函数的自定义valueOf

javascript - 当选择A改变时改变选择B的div

javascript - 从 kineticjs 中的容器获取舞台

javascript - WKWebview ".html Would Like To Use Your Current Location"拦截不起作用

javascript - 为什么可以使用 .length 检查 Javascript 中是否存在数组

加载另一个页面后,Javascript cookie 值丢失

javascript - HTML canvas measureText().width 太大

Javascript 在传递的术语上隐藏/显示 div

javascript - ZF2 如何在布局中使用页面 javascript 和样式表

jquery - 将 codepen 网站移植到 github 页面 - 折叠的导航按钮不起作用