1

関連する複数レベルの選択を行っています。

選択の値が変更されると、別の選択が行われます。作成する前に、それ以降の以前の選択をすべて削除したいと思います。しかし、うまくいきません。私は何かを試したり、実験を行っ.siblings()たり.next()しましたが、どちらも機能しません。何が問題なのですか、または私のアイデアを実装するためのより良い方法はありますか?

$('li').on("change", "select", function () {
  $(this).nextAll().remove(); //remove all the previous selects after which is changed.
  $(this).parents('li').append('<select data-mini="true"><option value="111">aaaa</option><option value="222">bbbb</option></select>').trigger('create');
});

このようなもの。

<select>
  <option>Europe</option>
  <option>Asia</option>
</select>

<!-- appended select -->

<select>
  <option>France</option>   
  <option>Germany</option>
</select>

ヨーロッパをアジアに変更すると、追加された選択が消え、以下の選択メニューが追加されます。

<select>
  <option>China</option>
  <option>Japan</option>
</select>

ここに画像の説明を入力

4

2 に答える 2

0

これを試して、

$('li').on("change","select",function(){
    $(this).closest('ul').find('select').remove();  
    $(this).closest('li').append('<select data-mini="true"><option value="111">aaaa</option><option value="222">bbbb</option></select>')
    .trigger('create');
});
于 2013-09-10T09:35:14.673 に答える
0

これと兄弟を削除する前に、親を保存してください

$('li').on("change", "select", function () {
    var parLi = $(this).closest('li'); //saving parent
    $(this).siblings().remove().end().remove();
    parLi.append('<select data-mini="true"><option value="111">aaaa</option><option value="222">bbbb</option></select>').trigger('create');
});

デモ

于 2013-09-10T09:35:22.440 に答える