0

オプションがclone()関数から生成されるドロップダウンがあります。次に例を示します。

    <select id="drop1">
        <option value="0">Select...</option>
        <option value="Apples">Apples</option>
        <option value="Bananas">Bananas</option>
        <option value="Orange">Orange</option>
        <option value="Cats">Cats</option>
        <option value="Dogs">Dogs</option>
        <option value="Candy">Candy</option>
    </select>

    <select id="drop2">               
    </select>

        ...
<script>  
    $('#drop1').children().clone().appendTo('#drop2');
</script>

しかし、私が知りたいのは、選択したアイテムをドロップダウンした後にアイテムを複製する方法です。明らかに、たとえば、イベントonchange()では、最初のドロップダウンを表示します。

   <select id="drop1">
        <option value="0">Select...</option>
        <option value="Apples">Apples</option>
        <option value="Bananas">Bananas</option>
        <option value="Orange">Orange</option>
        <option value="Cats" selected>Cats</option> --> select item
        <option value="Dogs">Dogs</option>
        <option value="Candy">Candy</option>
    </select>

クローン結果:

<select id="drop2">
    <option value="Dogs">Dogs</option>
    <option value="Candy">Candy</option>
</select>

私の意図は、2つの範囲フィールド(静的データ)を生成することです。私が助けてくれることを願っています。

4

2 に答える 2

3

フィドル

$('#drop1').change(function() {
   $('#drop2').empty();
   $("#drop1 option:selected").nextAll().clone().appendTo('#drop2'); 
});

</ p>

于 2012-05-02T20:42:33.860 に答える
0

子供に.sliceを使用してみてください。

$('#drop1')
   .children()
   .slice($('#drop1')[0].selectedIndex + 1)
   .clone()
   .appendTo('#drop2');

デモ

編集:オンチェンジ#drop1

$('#drop1').change(function() {
    $('#drop2')
       .empty()
       .append(
              $(this).children().slice(this.selectedIndex + 1)
             .clone()
       );
});

デモ

于 2012-05-02T20:38:57.750 に答える