0

jquery コードに問題があります。多くのフォームフィールドがあるフィールドセットを持つフォームがあります。1 つの div をクリックした後、同じ属性を持つ子を含む別のフィールドセットを追加する必要があります。最初に div をクリックすると、すべて問題ないように見えますが、2 回目のクリックでは何も起こりません。3 回目のクリックでは 4 つのフィールドセットがあり、4 回目のクリックでは 8 というように続きます。どこに問題があるのか​​わからない

html

<form>
  <fieldset class=fieldsett>
    <input>
    <input>
  </fieldset>
<div id="insert">Insert</div>
</form>

jquery

$(document).ready(function() {    
var fieldset_parent = $(".fieldsett").eq(0).clone();
        $("div#insert").click(function(){
           $(".fieldsett").after(fieldset_parent);
        });
});

助けてくれてどうもありがとう

4

1 に答える 1

0

jquery after メソッドは、セレクターの各要素の後にパラメーター化されたコンテンツを追加します。

そう

$(".fieldsett").after(fieldset_parent);

各項目の後にコンテンツを指数関数的に追加します。

代わりにこれを試してください:

$(".fieldsett:last").after(fieldset_parent);

次の説明がある after メソッドについては、http://api.jquery.com/after/を参照してください。

一致した要素のセット内の各要素の後に、パラメータで指定されたコンテンツを挿入します

編集:アイテムが消えるという問題がまだ残っていることに気付きました。これは、jquery が複製された要素を DOM に追加する方法に関係していると思います。これを回避するには、追加ごとにクローンを複製して、毎回一意の要素が DOM に追加されるようにします。

$(function() {    
  var fieldset_parent = $(".fieldsett:eq(0)").clone();
  $("div#insert").click(function(){
    $(".fieldsett:last").after($(fieldset_parent).clone());
  });
});
于 2013-06-29T10:44:57.857 に答える