0
function createInput(id){

    count++;
    var name = "name" + count;

    var text = "#" + id.id;
    var newInput = "<input type='text' id='" + name + "' placeholder='' />";


    var myTextArea = document.getElementById(id.id);
    myTextArea.innerHTML += newInput;

    return false;
}

上面的函数将输入类型添加到我代码中 div 中的文本区域。动态显示输入类型后,我尝试使用它获取它的元素 ID,getElementById但它返回 null。我可以知道这里出了什么问题吗?似乎添加了新的输入类型,但不知何故输入类型为空。

另外,当我刷新页面时,我意识到新添加的输入类型消失了。有什么方法可以强制新的动态输入类型保留在页面中?

4

1 回答 1

0

动态创建的内容只是页面上的临时内容。刷新页面时,它又没有了。您应该在页面onload 事件.ready()上重新创建它(将信息存储在cookieHTML5 存储中)。

我试图创建您的代码的工作示例:http: //jsfiddle.net/G2PKF/1/

<div id="area1" onclick="createInput(this)" ></div>
<br/>
<div id="area2" onclick="createInput(this)"></div>
<input type="button" onclick="alert(document.getElementById('name' + count));alert(document.getElementById('name' + count).outerHTML)" value="Access Last Element" />

单击矩形时,会向其中添加一个输入。该按钮允许显示添加的最后一个元素。

一切都按预期工作。我认为您的功能没有任何问题。

于 2013-08-24T20:01:11.773 回答