2011-01-22 96 views
0

我有一個關於課程的問題,並給這個課程一個特定的ID。給課程一個具體的ID

比如我有一個html代碼:

<div class="test">text1</div> 
<div class="test">text2</div> 
<div class="test">text3</div> 
<div class="test">text4</div> 
<div class="test">text5</div> 

我的問題是如何通過每類。測試添加ID。

我想是這樣的jQuery中:

var i = 1; 
$('.test').each(function(){ 
    $('.test').attr('id','id_'+i+''); 
    i++ 
}); 

這不工作,我覺得這件事情與.closest()或的.next() 來解決這個問題。

問候,

弗蘭克

編輯:

我自己解決了這個問題的答案是:

$('.test').each(function(){ 
     $(this).attr('class','test').attr('id','id_'+i+''); 
     i++; 
    }); 

回答

2

使用$(this)指當前元素的回調函數:

var i = 1; 
$('.test').each(function(){ 
    $(this).attr('id','id_'+i); 
    i++ 
}); 
0

你是在正確的道路上。

var i = 1; 
$('.test').each(function(){ 
    $(this).attr('id','id_'+i+''); 
    i++ 
}); 
+0

是的,我知道我是在正確的道路上,並解決它:) – Frank 2011-01-22 17:08:01

3

沒有理由讓一個計數器,。每個()帶有一個內置的

$('.test').each(function(i){ 
    $(this).attr('id','id_'+i+''); 
}); 
0

使用這個jQuery代替:

var i, $test = $('.test'), tl = $test.length; 
for (i = 0; i < tl; i++) { 
    $test.eq(i).attr('id','id_'+i+''); 
} 

由於ifor循環中遞增,因此您選擇了基於012的i的特定元素與.eq(i)

+0

是的,我知道這個選項,但是不知道.eq(i)函數感謝您回答不是jQuery的 – Frank 2011-01-22 17:12:50

1

更快速,更簡單的是這樣的:

$('.test').each(function(i){ 
    this.id = 'id_' + i; 
}); 

設置或獲取元素的id時,有沒有必要爲.attr()

或者,如果你想要的號碼開始1,這樣做:

$('.test').each(function(i){ 
    this.id = 'id_' + (i + 1); 
}); 
相關問題