好的。 我创建了一个自定义对象,用于构建事物列表。此自定义对象的其中一个功能是将对象添加到列表中。在此列表中,我为每个不同的元素分配了一个值,用于跟踪该项目已添加到列表中的多少项。如:使用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值,每次我实例化一个新的对象。
您使用的是'new'关键字?这应该确保你有独特的对象。 – 2012-07-18 19:20:27
@arxanas是的,我通过实例化它们: var object1 = new Thing(0,“blah”); – 2012-07-18 19:23:16
问题是计数器跨度的id对于对象的所有不同实例都是相同的,只需要知道更改每个不同对象的id名称的正确方法,因此没有两个对象具有与其计数值关联的相同id 。 – 2012-07-18 19:28:27