使用onclick按钮在Javascript中添加输入字段

使用onclick按钮在Javascript中添加输入字段,javascript,html,onclick,Javascript,Html,Onclick,我一直习惯于使用jquery或其他javascript框架,但现在我没有框架可供使用,所以我想看看是否有人知道我如何在可能的情况下使用纯javascript实现这一点 基本上我有一个这样的部门 <input type="button" id="more_fields" onclick="add_fields();" value="Add More" /> <div id="room_fileds"> <div class='label'>Room 1

我一直习惯于使用jquery或其他javascript框架,但现在我没有框架可供使用,所以我想看看是否有人知道我如何在可能的情况下使用纯javascript实现这一点

基本上我有一个这样的部门

<input type="button" id="more_fields" onclick="add_fields();" value="Add More" />

<div id="room_fileds">
    <div class='label'>Room 1:</div>
    <div class="content">
        <span>Width: <input type="text" style="width:48px;" name="width[]" value="" /><small>(ft)</small> X </span>
        <span>Length: <input type="text" style="width:48px;" namae="length[]" value="" /><small>(ft)</small</span>
    </div>
</div>

第1房间:
宽度:(英尺)X

长度:(ft)您可以使用
innerHTML
属性添加内容。在
span
元素周围的
div
中添加一个
id=“wrapper”
,然后可以执行以下操作

var dummy = '<span>Label: <input type="text"><small>(ft)</small></span>\r\n';
document.getElementById('wrapper').innerHTML += dummy;      
var dummy='Label:(ft)\r\n';
document.getElementById('wrapper').innerHTML+=dummy;
当然,您不需要
id
,也可以使用其他DOM方法来访问
div
,但我发现使用
id
更容易、更干净。这里有一个简单的例子


还要注意,您不应该内联css代码,也不应该将javascript调用直接附加到DOM元素中。分离DOM、Javascript和CSS将使您的生活更轻松。

只需像这样使用
innerHTML

顺便说一句,我将div
class=“content”
更改为
id=“content”
如果您愿意,可以添加新的id

function add_fields() {
   var d = document.getElementById("content");

   d.innerHTML += "<br /><span>Width: <input type='text'style='width:48px;'value='' /><small>(ft)</small></span> X <span>Length: <input type='text' style='width:48px'  value='' /><small>(ft)</small</span>";
}
函数添加_字段(){
var d=document.getElementById(“内容”);

d、 innerHTML+=“
宽度:(ft)X长度:(ft)不需要创建新房间

var room = 1;
function add_fields() {
    room++;
    var objTo = document.getElementById('room_fileds')
    var divtest = document.createElement("div");
    divtest.innerHTML = '<div class="label">Room ' + room +':</div><div class="content"><span>Width: <input type="text" style="width:48px;" name="width[]" value="" /><small>(ft)</small> X</span><span>Length: <input type="text" style="width:48px;" namae="length[]" value="" /><small>(ft)</small></span></div>';

    objTo.appendChild(divtest)
}
var房间=1;
函数add_fields(){
房间++;
var objTo=document.getElementById('room\u fileds')
var divtest=document.createElement(“div”);
divtest.innerHTML='Room'+Room+':宽度:(ft)XLength:(ft)';
对象追加子对象(divtest)
}

演示:

只需使用包装div的
innerHTML
属性,即
document.getElementById('someIdYouAssignToTheDiv')).innerHTML+='';
您的答案没有提供任何实际代码,只是链接到外部提供商。此外,我看不出您的答案如何在已经给出的答案中添加任何实质性内容。感谢您的评论,您是对的。我已编辑了我的答案。这很好,但我有一个问题。当我单击按钮时,它只添加了f字段ine但似乎清除了已填写的字段。这是什么原因造成的。Iv从未见过这种情况发生。您可以使用
createElement
appendChild
来避免这种情况。小提琴: