dog
2
的选择框。cat
1
2
更改为1
1
现在出现了我的问题:
dog
时,会创建第三个选择框,其值为2
,但我想保留第一个选择框的选定值。 1 1 2
,但此处的结果为2 1 2
(这只是一个例子。为了更清楚,我希望能够添加更多选择框,但如果我对所选值进行任何更改,那么我想保留它们)
$(".choose").on("change", function () {
var number = $(this).find("option:selected").data("number");
$(".result").append('<select class="list" data-value="' + number + '"><option value="1">1</option><option value="2">2</option></select>');
$(".list").each(function () {
var value = $(this).data("value");
$(this).val(value);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="choose">
<option selected disabled>Please select</option>
<option data-number="1">cat</option>
<option data-number="2">dog</option>
</select>
<div class="result"></div>
答案 0 :(得分:1)
更新了更好的代码:
$(".choose").on("change", function() {
var number = $(this).find("option:selected").data("number");
$(".result").append( $('<select class="list" data-value="' + number + '"><option value="1" selected>1</option><option value="2">2</option></select>').val(number) );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<select class="choose">
<option selected disabled>Please select</option>
<option data-number="1">cat</option>
<option data-number="2">dog</option>
</select>
<div class="result"></div>
答案 1 :(得分:1)
你可以试试这个。希望这有效。
$(".choose").on("change", function() {
var number = $(this).find("option:selected").data("number");
var value = $(this).val();
var html = '<select class="list" data-value="' + number + '"><option value="1">1</option><option value="2">2</option></select>';
var clone = $(html).clone();
clone.val(number);
$(".result").append(clone);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="choose">
<option selected disabled>Please select</option>
<option data-number="1">cat</option>
<option data-number="2">dog</option>
</select>
<div class="result"></div>
答案 2 :(得分:0)
我想分享一个最终适用于我的代码的解决方案:
$(".choose").on("change", function () {
var number = $(this).find("option:selected").data("number");
var el = $('<select class="list" data-value="' + number + '"><option value="1">1</option><option value="2">2</option></select>');
$(".result").append(el);
el.find('.list').val(number);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="choose">
<option selected disabled>Please select</option>
<option data-number="1">cat</option>
<option data-number="2">dog</option>
</select>
<div class="result"></div>