0

这是我的jQuery代码....

$("#addinp").click(function() {
    $(this).prepend('<label>Item ' + i + '<span class="small"></label><input type="text" name="middlename[]" />');
});

这是我的html....

<form id="form" name="form" method="post" action="?a=run">
<input type="text" name="firstname" id="firstname" />
<input type="text" name="lastname" id="lastname" />
<input type="text" name="middlename[]" id="middlename[]" />
<img src="add_another_name.png"  id="addinp"/>
<button type="submit">Add</button>
 </form>

这不会在“添加另一个按钮”之前出现另一个输入 - 烦人的是如果我这样做......

 $('form').prepend('<lab........

将它添加到它将起作用的形式......但它不会出现在图像之前......

4

2 回答 2

3

而不是prepend(),尝试before()如下,使用有效的 HTML。

prepend()在这里不起作用,因为它将传递的元素作为它的子元素插入到目标的开头。

$("#addinp").click(function() {
    $(this)
     .before('<label>Item '+i+'<span class="small"></span></label><input type="text" name="middlename[]" />');
});

您还可以使用.insertBefore()

$("#addinp").click(function() {
   $('<label>Item '+i+'<span class="small"></span></label><input type="text" name="middlename[]" />').insertBefore(this);
});

不要忘记更正上面的 HTML。

于 2012-07-19T16:04:30.820 回答
2

手册

.prepend() 方法将指定的内容作为 jQuery 集合中每个元素的第一个子元素插入

您不能将内容作为图像的第一个子项插入,因为该图像不能有子项。

您想before()在图像之前插入内容。

于 2012-07-19T16:05:37.167 回答