0

我有这个代码:

var label = document.createElement("label");

var input_element = document.createElement("input");
input_element.setAttribute("type","checkbox");
input_element.setAttribute("name",val.x_name);
input_element.setAttribute("value",val.x_name);

label.appendChild(input_element);
label.innerHTML += val.x_display;

ta.form.appendChild(label);
ta.inputs.push(input_element);

它的重点是创建一个复选框元素,将其添加到表单中,然后将其填充到数组中以便以后检查。问题是,当我到达这段代码的末尾时, input_element 并没有引用页面上存在的元素。我已经在 Chrome 的调试器中验证了这一点, input_element 引用的元素与 label 元素的子元素不同。

4

2 回答 2

0

input_element = label.appendChild(input_element);

于 2013-10-28T15:52:31.990 回答
0

我认为取消引用会在您label.innerHTML += val.x_display;更改 HTML 字符串时发生,从而导致 DOM 重写。

尝试

label.appendChild(input_element);
label.appendChild(document.createTextNode(val.x_display));
于 2013-10-28T15:52:39.323 回答