2012-07-18 77 views
0

好的。 我創建了一個自定義對象,用於構建事物列表。此自定義對象的其中一個功能是將對象添加到列表中。在此列表中,我爲每個不同的元素分配了一個值,用於跟蹤該項目已添加到列表中的多少項。如:使用Javascript動態更改HTML元素的ID

(3)對象#1
(2)對象#2

3,當然是該對象的 '計數' 值的2。我的問題是,我通過調用動態創建列表:

function Thing(count, value) 
{ 
    this.count=count; 
    this.value=value; 
} 

Thing.prototype.addToList = function() 
{ 
if (this.count == 0) 
{ 
    this.count++; 

    var list = document.getElementById("blah"); 
    var li = document.createElement("li"); 
    var interior = "<span id='counter'>("+this.count+")</span>"; 
    li.innerHTML = interior; 
    list.appendChild(li); 
} 
else 
{ 
    this.count++; 
    var countInc = document.getElementById("counter"); 
    countInc.innerHTML = "("+this.count+")"; 
} 
} 

這工作得很好,但如果我用不同的計數值添加多個對象,就沒有辦法來區分他們,並因此,列表中的第一個「計數器」跨度會隨着最近添加的對象的計數值而改變。所有其他計數值保持不變(1)。我曾嘗試過:

var interior = "<span id='counter"+this.value+"'>("+this.count+")</span>"; 

每次嘗試創建一個唯一的ID,但這不起作用。基本上,我想知道如何創建新的ID值,每次我實例化一個新的對象。

+0

您使用的是'new'關鍵字?這應該確保你有獨特的對象。 – 2012-07-18 19:20:27

+0

@arxanas是的,我通過實例化它們: var object1 = new Thing(0,「blah」); – 2012-07-18 19:23:16

+0

問題是計數器跨度的id對於對象的所有不同實例都是相同的,只需要知道更改每個不同對象的id名稱的正確方法,因此沒有兩個對象具有與其計數值關聯的相同id 。 – 2012-07-18 19:28:27

回答

1

試試這個

var list = document.getElementById("blah"); 
var li = document.createElement("li"); 
var interior = "<span id='counter-"+this.count+"'>("+this.count+")</span>"; 
li.innerHTML = interior; 
+0

不解決任何問題。 – 2012-07-18 19:25:25

+0

你只是想將你的跨度附加到li上嗎? – Kishore 2012-07-18 19:25:57

+0

不,我想改變,跨度的id,因此它對Thing對象的每個實例都是不同的。 – 2012-07-18 19:27:14