2017-07-24 80 views
2

我有四個標籤沒有包裹在一個div一個ID遍歷字母,並添加ID到一個標籤

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

我想命名使用的英文字母的循環中的一個標籤ID按降序排列

<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)); 
    }); 
}} 

在此先感謝!

+0

是的,我剛剛看到,不知道你是否注意到,但你有一個正常的循環,然後每個循環裏面的for循環 – Huangism

回答

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>

+0

Ethan E很高興幫助你:) :) –

3

您在示例代碼中混合使用了兩個循環,只需使用一個來簡化它。我將使用.each這裏

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

我需要第一個循環來定義$ elem –

+0

這將返回每個標籤ID爲「A 「 –

+0

@AlivetoDie是啊,剛剛編輯,這是類似於你的。榮譽。 – enjoylife

0

試試這個:

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