期权选择价值是动态创建的

时间:2019-12-27 15:17:04

标签: javascript jquery html html-framework-7

我想从Framework7创建该选择:

 <a href="#" class="item-link smart-select smart-select-init">
    <!-- select -->
    <select name="fruits">
      <option value="apple" selected>Apple</option> 
      <option value="pineapple">Pineapple</option>
      ...

因此,在我的代码中,我从数据库中获取值,然后创建了元素。我特别关注seleted属性:

_db_getvalues.company(id, function (result) {
            if (result.rows.length > 0) {

                var element = document.getElementById(mySmartselect);


                    var option = document.createElement("option");
                    option.setAttribute('selected', result.rows.item(i).name);
                    option.value = result.rows.item(i).name;
                    option.text = result.rows.item(i).name;
                    option.setAttribute('data-identificador', result.rows.item(i).name);
                    element.add(option);

            }

        });

但是不起作用;

  

option.setAttribute('selected',result.rows.item(i).name);

对我的选项列表没有影响

这是HTML部分

<a class="item-link smart-select smart-select-init" data-open-in="popover">
   <select name="" id="mysmartselect">

   </select>
   <div class="item-content" >
   <div class="item-inner" >
    div class="item-title">Group</div>
    </div>
    </div>
    </a>

这是我想看到的:

enter image description here

但这就是我得到的

enter image description here

我做错了什么?我没有在控制台上遇到错误。

1 个答案:

答案 0 :(得分:0)

您的代码存在一些语法问题

1- div标签之一尚未关闭</div>

2-var element = document.getElementById("mySmartselect"); // class names have to between "

无论如何,如果我们假设您返回的数据工作正常,那么语法修复后的代码将起作用:

     var element = document.getElementById("mySmartselect");

                for (var i = 0; i < 5; i++) {
                    var option = document.createElement("option");
                    option.setAttribute('selected', 'apple'+i);
                    option.value = 'apple'+i
                    option.text = 'apple'+i;
                    option.setAttribute('data-identificador', 'apple'+i);
                    element.add(option);
                }
        
<a class="item-link smart-select smart-select-init" data-open-in="popover">
   <select name="" id="mySmartselect">
   </select>
   <div class="item-content" >
   <div class="item-inner" >
    <div class="item-title">Group</div>
    </div>
    </div>
    </a>