いくつかの選択ボックスを持つ「カテゴリ ツリー」があります。アイテムのカテゴリを選択すると、子カテゴリが読み込まれ、次の選択ボックスに表示されます。
フォームについては、DOM から.submit()
最初のフォームを削除します。.category
最後のものが残さname
れると、最後の に属性が与えられます.category
。
ねじれは、ページに複数のアイテム フォームがある場合に発生します。私が行ったことは、jQuery を使用して.item
s を反復処理し、.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.length
while ステートメントで呼び出すと、当然のことながら 2 が返されます。.find()
の戻り値は jQuery オブジェクトではないと思います。