2012-01-11 73 views
-1

下面的代碼添加相同的ID,以每格兄弟:jQuery的 - 不同的ID添加到一個同級

var d = 0; 
var newid = currentId.substring(currentId.length-8, currentId.length-1)+d; 

$.each(('table').next(), function() { 
    $('table').find('div[id|="edid"]').attr("id", newid); 
    d++; 
}); 

的HTML結構如下:

<table><tr><td><div id="edid-0-">text</div></td></tr></table> 
<br> 
<table><tr><td><div id="edid-0-">text</div></td></tr></table> 
<br> 
<table><tr><td><div id="edid-0-">text</div></td></tr></table> 

運行我的代碼後, ID應如下所示:edid-0-0,edid-0-1,edid-0-2等等。

而是所有要麼edid-0-0edid-0-0did-0-0 ... 或edid-0-3edid-0-3edid-0-3 ...

不同的地方,我把變量(或境外的各功能)。

我嘗試了各種變化,但它始終是相同的ID結尾,並且沒有連續的編號。我有點理解爲什麼會發生這種情況,但我不知道如何解決這個問題。坐在這裏幾個小時。我的頭 - >爆炸。

+0

APLY下<div/> NEWID總是在之前各功能 – noob 2012-01-11 15:49:01

+0

爲什麼你在客戶端做這個添加? – 2012-01-11 15:50:12

+0

你的問題到底是什麼? – dgvid 2012-01-11 18:32:58

回答

2

由於d始終爲0,你爲什麼不只是使用在function()

而且索引參數,你正在做$("table")

var newid = currentId.substring(currentId.length-8, currentId.length-1)+d; 

+0

這就是它!非常感謝。 – user1126272 2012-01-11 16:04:18

0

您正在設置值「newid」(永遠不會更改),但您正在遞增「d」。

0

簡單:移動

var newid = currentId.substring(currentId.length-8, currentId.length-1)+d; 

S.each內部回調函數來重新定義在每個迭代上的ID字符串。另外,它是否真的將ID添加到下一個表中?對我來說,代碼似乎應該將ID添加到'
'。在每個

0

你應該把這個在每次迭代期間,這將再次查詢dom。我假設你真正想要$(this)將查找當前<table/>

var newid = currentId.substring(currentId.length-8, currentId.length-1)+d; 
$.each($('table').next(), function(index, elm) { 
    $(this).find('div[id|="edid"]').attr("id", newid + index); 
}); 
相關問題