0

我正在用 javascript 为 xml 文件编写一个表树,我需要为每个 . 单击此按钮时,需要将其文本从“-”更改为“+”,反之亦然。我通常知道以下代码会起作用;

function change()
{
    if(document.getElementsById("myButton").innerHTML == "-"){
        document.getElementById("myButton").innerHTML = "+";
    }
    else{
        document.getElementById("myButton").innerHTML = "-";
    }
}

我不能只使用它的原因是因为按钮是在循环中创建的,所以它们都具有相同的 ID。

如果您可以帮助我做到这一点,那么每次制作按钮时,它的 ID 都会附加一个递增的数字,或者有另一种方法来执行上述代码,这将很有帮助。

4

2 回答 2

1

当您循环创建每个按钮时,创建一个计数器变量,或使用 for 循环中的变量,每个循环将其递增 1 并将其附加到 ID。

for(var i = 0; i < some_number; i++){
  var ID = "myButton"+i;
  //Other code
}
于 2013-06-12T15:15:03.373 回答
1

根本不需要使用身份证;而是将要修改的元素作为参数传递给change函数。该函数现在看起来像这样:

function change(element)
{
    if(element.innerHTML == "-"){
        element.innerHTML = "+";
    }
    else{
        element.innerHTML = "-";
    }
}

然后,当您创建按钮时,该onclick属性将如下所示:

onclick="change(this);"
于 2013-06-12T15:15:26.060 回答