javascript - 将单个值传递给每个元素的解决方案

标签 javascript jquery html anchor

我有一组值:

var arr = [1, 2, 3, 4, 5];

我想选择页面上的所有 a 标签,并从数组内部为它们分配各自的 href 值。

var $a = $('a');

我运行了一个for循环

for(let i = 0; i < arr.length; i++) {
  a.attr('href', arr[i])
}

循环将为所有 href 赋予 5 的值...我明白为什么会这样,但我想不出一个解决方案来获得:1st href = 1、2nd href = 2、3rd href = 3。 ....ETC。解决办法是什么?谢谢。

最佳答案

您必须在每次迭代中定位相应的 anchor 元素。您可以使用 jQuery 的 .eq()i 的当前值。

var arr = [1, 2, 3, 4, 5];
var $a = $('a');
for(let i = 0; i < arr.length; i++) {
  $a.eq(i).attr('href', arr[i]);
  $a.eq(i).text('Link ' +arr[i]); // for test
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a></a>
<a></a>
<a></a>
<a></a>
<a></a>

尽管我更喜欢使用 jQuery 的 .each()它使用 this 对象来引用当前元素:

var arr = [1, 2, 3, 4, 5];
$('a').each(function(i){
  $(this).attr('href', arr[i]);
  $(this).text('Link ' +arr[i]); // for test
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a></a>
<a></a>
<a></a>
<a></a>
<a></a>

关于javascript - 将单个值传递给每个元素的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53718856/

相关文章:

javascript - 如何选择由 jQuery 生成的元素?

javascript - 以另一个对象的属性作为键的对象

javascript - 为什么在页面刷新后验证函数调用而单击时没有任何反应

javascript - Predix UI Seed 应用程序 - 从 url 中删除哈希

javascript - 如何使用脉动点调出模态框

html - 在第 2 列上叠加第 1 列

java - 什么是标记 (HTML) 生成的好技术?

javascript - 这是正则表达式BUG吗?

javascript - 在 Javascript onkeypress 事件中,Tab 按钮不触发(在 Mozilla Firefox 中)

jquery - 调用带有参数的公共(public)方法 jQueryUI Widget