[英]How can I append array using jQuery?
I have two select box.我有两个选择框。
<select id="select-1"><option value="one">one</option><option value="two">two</option></select>
<select id="select-2"></select>
When I select value one it will append option list using List array当我选择值一时,它将使用 List 数组附加选项列表
<script type='text/javascript'>
jQuery(document).ready(function($) {
$('#select-1').on('change', function() {
var List = ["test 1", "test 2", "test 3", "test 4"];
var selectedVal = $(this).children("option:selected").val();
if(selectedVal == "one") {
$('#select-2').append('<option>' + List + '</option>');
} else {
//
}
})
});
</script>
It load option list like它加载选项列表,如
<option>test 1 test 2 test 3 test 4</option>
but it must be但它必须是
<option>test 1</option><option>test 2</option><option>test 3</option><option>test 4</option>
how can I fix this ?我怎样才能解决这个问题 ?
One way to do this succinctly would be to use map()
to build a HTML string of option
elements from the array which you can append:一种简洁的方法是使用
map()
从您可以附加的数组中构建一个option
元素的 HTML 字符串:
jQuery($ => { $('#select-1').on('change', function() { let list = ["test 1", "test 2", "test 3", "test 4"]; if ($(this).val() === "one") { let options = list.map(t => `<option>${t}</option>`).join(''); $('#select-2').append(options); } else { $('#select-2').empty(); } }) });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="select-1"> <option value="">Select...</option> <option value="one">one</option> <option value="two">two</option> </select> <select id="select-2"></select>
You probably want a for
or a forEach
loop:您可能需要
for
或forEach
循环:
if (selectedVal == "one") {
List.forEach(item => {
$('#select-2').append('<option>' + item + '</option>');
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.