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

の代わりに、有効なHTMLを使用して次のようにしてprepend()みてください。before()

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 に答える