JavaScript:将输入元素添加到当前div

JavaScript:将输入元素添加到当前div,javascript,html,add,Javascript,Html,Add,我有一个javascript函数,它向页面添加一个包含三个输入的div和一个向同一个div添加更多输入的链接(假设用户不知道将有多少字段,所以他可以动态添加它们) var div=document.createElement(“div”); div.innerHTML=''+ “”+ “”+ ''; var parent_div=document.getElementById('dinamicni_div'); 父/子分部(分部); 我现在如何实现这个addInput()函数来在同一个div中

我有一个javascript函数,它向页面添加一个包含三个输入的div和一个向同一个div添加更多输入的链接(假设用户不知道将有多少字段,所以他可以动态添加它们)

var div=document.createElement(“div”);
div.innerHTML='

'+ “
”+ “
”+ ''; var parent_div=document.getElementById('dinamicni_div'); 父/子分部(分部);
我现在如何实现这个addInput()函数来在同一个div中的最后一个输入(当前为input2)下方(但在链接上方)添加一个输入


只是想澄清一下——我有两个JS函数来动态生成内容:addDiv(),您可以看到上面的缩写;和addInput(),我想实现它,它应该在单击链接的当前div中添加一个输入。

您可以添加一个div,其中包含您创建的div中的输入字段,然后,可以像以前一样通过附加child向其添加新元素。

为链接提供一个类或id,并使用以下方法插入:

编辑:

我同意,这个问题不是关于jquery的,但提问者暗示,他的要求会允许,为了完整起见,这里是jquery中的代码(以海报为例,不合理地恐吓学习jquery)

函数createInputMethod(){
返回$('

'+ “
”+ “
”); } var div=$(“”); div.append(createInputMethod()); div.append($(''); var parent_div=$('dinamicni_div'); 部门附件(上级部门); 函数addInput(){ createInputMethod().insertBefore(“#btn”); }
试试看

document.getElementById('yourdiveID').innerHTML+=“
”;

它将添加到div的末尾。

我会这样做。获取所有输入。计算输入的数量,并在方法之后使用jquery
进行添加。代码如下:

function addInputMethod() {

    var len = $('div').find('input').length;


    $('input:nth-child(' + len + ')').after('<input type="text" name="input' + (len + 1) +'"/><br />'); 
}
函数addInputMethod(){
var len=$('div')。find('input')。length;
$('input:n第n个子('+len+'))。在('
')之后; }
编辑

如果您没有
div
id
,您可以将长度更改为该值

var len=$(this).parent().find('input').length;

同时将第二行更改为


$(this).parent().find('input:nth child…

我们能看到您试图改进的函数吗?它还没有实现,但现在我已经得到了实现它的技巧:)您看到问题中提到的jQuery了吗?确实是jQuery,但仍然感谢您提到它,它看起来不错,我应该学习jQuery:)@安德烈·希特克,没有,但我还是喜欢奥德斯特汉克斯,从我的角度来看,这将是最优雅的回答。我将使用此或jQuery解决方案。您可以将布局和jQuery结合起来,使其简单而优雅:)使用jQuery不会像我几年前简单地使用它那样简单:)此方法将在链接后添加输入,我希望在之前添加输入-除非输入在它们自己的div中。不过,谢谢一个问题-因为我有许多包含这些输入的div,我怎么知道我从其中的哪一个重定向到函数(在其中单击了链接)?Anji,我认为(你的更新)的第一行有问题。它会导致错误。“你确定没事吗?”PrimožKralj编辑。我有一个额外的括号。谢谢你找到它。谢谢你,你帮了很多忙。
function createInputMethod(){
    return $('<input type="text" name="question" /><br><br>'+
              '<input type="text" name="input1"/><br />'+
              '<input type="text" name="input2"/><br />');
}

var div = $("<div/>");
div.append(createInputMethod());
div.append($('<a href="javascript:addInput()" id="btn">Add input field</a>');
var parent_div=$('dinamicni_div');
div.appendTo(parent_div);

function addInput(){
   createInputMethod().insertBefore("#btn");
}
document.getElementById('yourdiveID').innerHTML += "<input type='text' value='' /><br />";
function addInputMethod() {

    var len = $('div').find('input').length;


    $('input:nth-child(' + len + ')').after('<input type="text" name="input' + (len + 1) +'"/><br />'); 
}