0

いくつかの選択ボックスを持つ「カテゴリ ツリー」があります。アイテムのカテゴリを選択すると、子カテゴリが読み込まれ、次の選択ボックスに表示されます。

フォームについては、DOM から.submit()最初のフォームを削除します。.category最後のものが残さnameれると、最後の に属性が与えられます.category

ねじれは、ページに複数のアイテム フォームがある場合に発生します。私が行ったことは、jQuery を使用して.items を反復処理し、.each()そこから jQuery を使用.find()してアイテム内のカテゴリを見つけることです。

私が使用している While ループは、無限ループを作成します。私はスクリプトの実行中に変数を出力していましたが、私が思っているものを返しているとはconsole.log()思いません。.find()

html:

<div class="item">
    ....
    <div class="category"></div>
    <div class="category"></div>
    ....
</div>

JavaScript:

$('#transaction-form').submit(function(){
    $('.item').each(function(){
        var index = $(this).index();
        var category = $(this).find('.category');
        while (category.length > 1){
            $($(category)[0]).parent().remove();
        }
        $(category[0]).attr('name', 'form-' + index.toString() + '-category');
    });
});

category.lengthwhile ステートメントで呼び出すと、当然のことながら 2 が返されます。.find()の戻り値は jQuery オブジェクトではないと思います。

4

2 に答える 2

1

カテゴリの親エントリを削除しても、実際には Jquery オブジェクトから削除されません。長さが実際に変化しないため、無限ループが発生します...

于 2013-09-12T02:01:04.133 に答える