Jquery Prepend不会在img标记中添加HTML

Jquery Prepend不会在img标记中添加HTML,jquery,html,forms,Jquery,Html,Forms,这是我的jquery代码 $("#addinp").click(function() { $(this).prepend('<label>Item ' + i + '<span class="small"></label><input type="text" name="middlename[]" />'); }); $(“#addinp”)。单击(函数(){ $(this).prepend('Item'+i+''); }); 这是我的

这是我的jquery代码

$("#addinp").click(function() {
    $(this).prepend('<label>Item ' + i + '<span class="small"></label><input type="text" name="middlename[]" />');
});
$(“#addinp”)。单击(函数(){
$(this).prepend('Item'+i+'');
});
这是我的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........
$('form').prepend('而不是
prepend()
,请使用有效的HTML按以下方式尝试

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

$("#addinp").click(function() {
    $(this)
     .before('<label>Item '+i+'<span class="small"></span></label><input type="text" name="middlename[]" />');
});
别忘了更正上面的HTML。

使用有效的HTML,而不是
prepend()
,尝试以下操作

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

$("#addinp").click(function() {
    $(this)
     .before('<label>Item '+i+'<span class="small"></span></label><input type="text" name="middlename[]" />');
});
别忘了更正上面的HTML。

来自:

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

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

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

来自:

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

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


您希望在图像之前插入内容。

您正在预写无效的HTML。我建议
Item'+I+'
应该是
Item'+I+'
,这是正确的,但不是问题的原因。标签应该具有与输入id匹配的for属性,或者应该包含输入。目前来看,它是无用的。您重新设置无效HTML的前缀。我建议
Item'+I+'
应该是
Item'+I+'
,这是正确的,但不是问题的原因。标签应该有一个与输入id匹配的属性,或者应该包含输入。目前来看,它是无用的。