1

最初からオプションから動的に作成された選択のすべてのオプションを取得するにはどうすればよいですか?jqueryで試してみましたが、うまくいきませんでした:

 for( j = 0; j < i; j++)
     $('#s1 option').clone().appendTo(IS+j);

HTML ファイル:

<input type="button" value="Add" id="btn1" OnClick="f('dv1');">
<div id="dv1">
    <select id="s1" name="select1">
        <option>
            1
        </option>

        <option>
            2
        </option>
    </select>
</div>

<script type="text/javascript" src="js/functions.js"></script>

functions.js

var i = 1;
function f(x){
    var y = document.createElement('div');
    y.innerHTML = '<br><Select id="IS"'+i+ 'name="NAME"'+i+' > </Select>';
    document.getElementById(x).appendChild(y);
    i++;
}
4

2 に答える 2

1

複数の選択オブジェクトを作成しているように見えるため、jquery セレクターと選択用に生成している ID を修正する必要があります。まず、次の$('#s1 option').clone().appendTo(IS+j); ように変更する必要があります。

$('#s1 option').clone().appendTo('#IS' + j);

次に、次のy.innerHTML = '<br><Select id="IS"'+i+ 'name="NAME"'+i+' > </Select>'; ように変更する必要があります。

y.innerHTML = '<br /><select id="IS'+i+ '" name="NAME'+i+'"></select>';

編集

元のドロップダウンを複製しようとしているだけの場合は、次のようにする必要があります。

function f(x){
    // Create new select within its own div
    var y = document.createElement('div');
    y.innerHTML = '<br /><select id="IS'+i+ '" name="NAME'+i+'"></select>';
    document.getElementById(x).appendChild(y);

    // Fill new select with the options from the original
    $('#IS' + i).html($('#s1').html());

    i++;
}

ライブデモ

于 2012-06-08T00:25:15.303 に答える
0

何らかの理由で変更を加えるためにオプションを繰り返す必要がある場合は、別の方法があります

var newSelect = $("<select />");

$.each(primarySelect.options, function (i, opt)
{
   $(newSelect).append($('<option></option>', { 
       value: opt.value, text: opt.text, selected: opt.selected }));
});

JSフィドルライブバージョン

$(primarySelect.options).each(...)IEでは正しく機能しないため、使用しないでください。


参照:jQueryを使用して配列からの選択にオプションを追加するための最良の方法は何ですか?

于 2013-02-05T01:22:48.317 に答える