循环字母并将ID添加到A标签

时间:2017-07-24 18:37:13

标签: javascript jquery

我有四个没有ID的标签包含在div

<div class = "comTabs">
  <a></a>
  <a></a>
  <a></a>
  <a></a>
</div>

我想使用字母表中字母的for循环按降序命名标签Ids

<div class = "comTabs">
  <a id = "A"></a>
  <a id = "B"></a>
  <a id = "C"></a>
  <a id = "D"></a>
</div>

这是我的JS

for (var i = 0; i < ($('.commTabs a').length); i++) {
var $elem = $('.commTabs > a')[i];

这里出错了,所有A标签ID都被定义为“Z”

for (var letter = 65; letter <= 90; letter++) {
$($elem).each(function(i) {
    $(this).attr('id', String.fromCharCode(letter));
  });
}}

提前感谢!

3 个答案:

答案 0 :(得分:3)

在示例代码中将两个循环混合在一起,只需使用一个就可以简化它。我将在这里使用.each

$('.commTabs a').each(function(i) {
   $(this).attr('id', String.fromCharCode(65 + i));
});

答案 1 :(得分:2)

您可以使用$('.comTabs a').each(function(i){直接执行此操作: -

实施例: -

$('.comTabs a').each(function(i) {
   $(this).attr('id', String.fromCharCode(65 + i));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class = "comTabs">
  <a>1</a>
  <a>2</a>
  <a>3</a>
  <a>4</a>
</div>

答案 2 :(得分:0)

试试这个:

var i = 65;
$('.commTabs > a').each(function(i) {
    $(this).attr('id', String.fromCharCode(letter));
    i++;
  });
}}