2

我正在根据用户操作动态创建表单。它是一个输入框和每个实例的两个“按钮”。每个实例都将被包装在一个唯一的 div 标签中。

我试图做的没有成功的是,当我动态创建“按钮”时,我将一个函数附加到包含其实例的 div 的输入变量中。这是一个简短的摘录:

  var newDivClass = document.getElementById("instance"+1);
  button1.innerHTML = "<a href=\"#\" onclick=\"buttons("+newDivClass+");\" id=\"button1\"> Button1 </a>";

  function buttons(selected) {
        //I want this to select the first instance 
        //of button1 found within div newDivClass
        selected.getElementById("button1");
        //I also tried
        //this.getElementById("button1");
        //selected.getChildren[0]; 
  }

问题似乎在于将 newDivClass 传递给实际函数。

4

2 回答 2

2

如果您的意图是将对象的名称作为字符串而不是对对象本身的引用传递,那么您需要在 newDivClass 变量周围加上引号:

button1.innerHTML = "<a href=\"#\" onclick=\"buttons('"+newDivClass+"');\" id=\"button1\"> Button1 </a>";

否则,您的按钮函数中的脚本将尝试在 dom 的顶层对 id 为“instance*n*”的对象进行操作。

于 2010-12-31T17:59:55.887 回答
0

要获得第一个孩子,您可以使用该firstChild属性。

于 2010-12-31T17:51:25.617 回答