我正在javascript中为xml文件编写一个表树,我需要每个按钮。单击此按钮时,需要将其文本从“ - ”更改为“+”,反之亦然。我通常知道以下代码可以工作;
function change()
{
if(document.getElementsById("myButton").innerHTML == "-"){
document.getElementById("myButton").innerHTML = "+";
}
else{
document.getElementById("myButton").innerHTML = "-";
}
}
我不能仅仅使用它的原因是因为按钮是在循环中创建的,所以它们都具有相同的Id。
如果您可以帮助我这样做,那么每次按钮生成时它的Id都会附加一个递增的数字,或者有另一种方法来执行上面的代码,这将有所帮助。
答案 0 :(得分:1)
当您循环创建每个按钮时,创建一个计数器变量,或使用for循环中的变量,每个循环将其递增1并将其附加到ID。
for(var i = 0; i < some_number; i++){
var ID = "myButton"+i;
//Other code
}
答案 1 :(得分:1)
根本不需要使用ID;而是传递元素以作为change
函数的参数进行修改。该功能现在看起来像这样:
function change(element)
{
if(element.innerHTML == "-"){
element.innerHTML = "+";
}
else{
element.innerHTML = "-";
}
}
然后,当您创建按钮时,onclick
属性将如下所示:
onclick="change(this);"