无法使用其选项动态创建select

时间:2016-07-25 19:35:26

标签: javascript jquery html

我尝试动态创建一个带有选择输入的div但是事实证明有一个带有注释的空div。

如您所见,$ eduRow是一个用作容器的div。试图以多种方式解决它但仍然没有工作(总是想出一个空的div)。

我有一个点击按钮,点击后会动态创建这些选择内容。

这是在文档就绪函数中编写的函数。

$("#addMoreEdu").on('click', function() {

  var $eduRow = $("#edu-row");


  var select = $('<select />', {
    'class': 'selectoption'
  });


  $(select).append($('<option value="" disabled selected>Degree option</option>'));
  $(select).append($('<option value="1">High School</option>'))
  $(select).append($('<option value="2">College</option>'))
  $(select).append($('<option value="3">Bachelors degree</option>'))

  var div = $('<div />', {
    'class': 'input-field col s12 m4 l4'
  });

  $(div).append(select)

  $eduRow.append(div);

  $eduRow.append('<div class="input-field col s12 m4 l8"><span class="fieldLabel"> Institutes Name</span><input placeholder="Institutes Name" id="IntsName" type="text" /></div>');
});

另一个奇怪的事情是第二个附加工作正常。我觉得选择一定有问题:\ 有什么想法吗?

注意:如果您可以查看“教育背景”部分,我的代码在codepen

3 个答案:

答案 0 :(得分:1)

所以你必须等待文档加载,然后在HTML中用开始和结束标记定义元素,并在开始标记中指定属性:

我想你有这个HTML:

<div id="edu-row">

</div>

JavaScript应该这样:

 $(document).ready(function(){

    var $eduRow = $("#edu-row");
    var select = $('<select class="selectoption"><select />');
    //you can append html without $() 
    $(select).append('<option value="" disabled selected>Degree option</option>');
    $(select).append('<option value="1">High School</option>')
    $(select).append('<option value="2">College</option>')
    $(select).append('<option value="3">Bachelors degree</option>')

    var div = $('<div class="input-field col s12 m4 l4"></div >');
    $(div).append(select)

    $eduRow.append(div);
})

这是一个小提琴:https://jsfiddle.net/m0786yq4/

答案 1 :(得分:1)

我已在一个空白项目中运行此代码,但它确实有效。我做的唯一更改是将代码包装在$(document).ready(function () { YOUR CODE HERE });构造中。我建议您使用选择器或jQuery的脚本包含可能有另一个问题。

尝试将debugger;行放入并运行调试工具(F12)

答案 2 :(得分:0)

这将附加div&amp;下拉到正文的末尾,您可以使用任何其他标记来控制html的添加位置。

   if py_ser_ver < 2.7:
      raise StandardError("PySerial version 2.7 or greater is required. Your version is: " + serial.VERSION)