2011-02-15 48 views
0

我想使用jQuery重命名元素的id屬性。我需要符合以下條件:javascript正則表達式

  • row_1
  • row_2
  • row_xx等

這是我到目前爲止有:

$('.form .newsCategories .row .itemWrap .itemTop .inputBtn').each(function(index){ 
    $(this).attr("id", $(this).attr("id").replace($(this).attr("id").match(/\[row_[0-9]+\]/), "roww_"+index)); 
    }); 

但這種失敗。我認爲我的登記證是錯誤的。請幫助 感謝

回答

5

如果我理解你希望得到的標識,你可以這樣做:

this.id = "row" + index; 

例如,如果你想找到所有這些,在文檔順序重新編號他們:

$("*[id^=row]").each(function(index) { 
    this.id = "row" + index; 
}); 

使用一個attribute starts-with selector^=)找到唯一的元素,其id開始與「行」,然後他們重新編號文檔順序。


題外話:需要注意的是,我們沒有理由在所有使用$(this).attr("id"); DOM元素本身具有id屬性,該屬性直接反映了id屬性。

+0

+1是在OP似乎做得使用attr很多(「ID」)不必要的地獄。 – 2011-02-15 21:38:02

1

您有一組額外的方形([])括號。將其更改爲:

/row_[0-9]+/ 

或等價的:

/row_\d+/ 
+0

這個工程。非常感謝! – ShaneKm 2011-02-15 21:36:03

0

使用[]小號創建,你不需要做一個字符類。試試這個正則表達式...

/row_[0-9]+/