JQuery клон <select>элемент - PullRequest
       32

JQuery клон <select>элемент

17 голосов
/ 11 октября 2010

Я хочу клонировать ввод

Особенно заинтересован в том, как лучше записать его обратно в документ.

Мой элемент selectвыглядит так:

<select id="options">
    <option value="1">Opt 1</option>
    <option value="2">Opt 2</option>
    <option value="3">Opt 3</option>
</select>

Спасибо.

Ответы [ 5 ]

29 голосов
/ 11 октября 2010

См .: http://api.jquery.com/clone/

$('select#options').clone().attr('id', 'newOptions').appendTo('.blah');

appendTo (...) - это только один способ вставить клонированные элементы.Другие методы можно найти здесь: http://api.jquery.com/category/manipulation/

12 голосов
/ 15 ноября 2011

Как насчет этого?

<select id="options">
    <option value="1">Opt 1</option>
    <option value="2">Opt 2</option>
    <option value="3">Opt 3</option>
</select>

// target

<select id="options2">
</select>

$('#options').find('option').clone().appendTo('#options2');

Спасибо.

9 голосов
/ 05 марта 2013

Единственная проблема с принятым ответом состоит в том, что если ваш выбор содержит optgroups, они не будут скопированы.В этом случае самый простой способ, который я нашел, это просто сделать это:

$('#options2').html($('#options').html());
0 голосов
/ 05 декабря 2017

Вы можете выбрать опцию true, выбрав изменение, затем использовать клон в порядке.

$("#options").off("change").on("change", function() {
    var val = $(this).val();

    $(this).find("option[value=" + val + "]").attr("selected", true);
});

$("#options").off("change").on("change", function() {
    var val = $(this).val();

    $(this).find("option[value=" + val + "]").attr("selected", true);
});
0 голосов
/ 11 октября 2010

jQuery имеет встроенный метод клон .Существует множество параметров для добавления клонированного элемента обратно. Правильный выбор зависит от вашего приложения.

...