如何处理"选择任何选项"

时间:2016-04-26 13:55:54

标签: jquery select

我的html代码中有这个选择:

<select id="select_type">

</select>

我需要放一个&#34;选项&#34;在我的选择中,所以在我的jquery froman aray:

array.push('a');
array.push('b');
array.push('c');
array.push('d');
for (var i in array) {
    console.log("hi");
    $('#select_type').append('<option value="' + array[i] + '">' + array[i] + '</option>');
}

问题是我可以看到我创建的选项,如果我读了&#34; hi&#34;打印。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:3)

你需要做两件事:

  1. 包含document的{​​{1}}功能。 (我相信脚本在DOM加载之前加载了)
  2. 初始化ready
  3. array
    $(function () {
      var array = [];
      array.push('a');
      array.push('b');
      array.push('c');
      array.push('d');
      for (var i = 0; i < array.length; i++) {
        console.log("hi");
        $('#select_type').append('<option value="' + array[i] + '">' + array[i] + '</option>');
      }
    });

    另外,请不要使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select id="select_type"> </select>来迭代数组。

    另外,我不明白你的for...in个人元素背后的原因。可以使用以下方法重构:

    .push()

    最后,在循环内使用array.push('a', 'b', 'c', 'd'); 或任何DOM修改都很昂贵。所以你可以用这种方式考虑更好的代码:

    .append()
    $(function () {
      var array = ['a', 'b', 'c', 'd'];
      var finalHTML = "";
      for (var i = 0; i < array.length; i++) {
        console.log("hi");
        finalHTML += '<option value="' + array[i] + '">' + array[i] + '</option>';
      }
      $('#select_type').append(finalHTML);
    });

答案 1 :(得分:2)

您也可以使用forEach循环

&#13;
&#13;
var array = [];
array.push('a', 'b', 'c', 'd');

array.forEach(function(el) {
  $('#select_type').append('<option value="' + el + '">' + el + '</option>');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="select_type"></select>
&#13;
&#13;
&#13;

您也可以使用JQuery $.each循环,并且可以将所有选项添加到循环结束内的一个字符串,然后将该字符串附加到HTML,如@Tushar建议

&#13;
&#13;
var array = ['a', 'b', 'c', 'd'], string = '';

$.each(array, function(i, el) {
  string += '<option value="' + el + '">' + el + '</option>';
});

$('#select_type').append(string);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="select_type"></select>
&#13;
&#13;
&#13;