简体   繁体   English

如何使用 jQuery 附加数组?

[英]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:您可能需要forforEach循环:

if (selectedVal == "one") {
    List.forEach(item => {
        $('#select-2').append('<option>' +  item + '</option>');
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM