【问题标题】:jQuery append method creating x blank valuesjQuery追加方法创建x个空白值
【发布时间】:2014-12-24 15:12:25
【问题描述】:

我遇到了问题。这是我的代码:

this.setDataInDropDown = function(members) {
    /*
    * @todo check if some values are already availible in JSON
    */
    var divs   = [".xy-layer-longitude", ".xy-layer-latitude"],
        len    = divs.length;
    for (var i=0; i<len; i++) {
        $(divs[i]).empty();
        if (!members || !members.length) {
            alert("<option value='!none'>None<option>"); // triggered two times like it should !
            $(divs[i]).append("<option value='!none'>None<option>");
        } else {
            var memLen = members.length;
            for (var j=0; j<memLen; j++) {
                $(divs[i]).append("<option value="+members[j]+">"+members[j]+"<option>");
            }
        }
    }
}

如果成员数组包含例如 4 个值,则 append 方法将创建

<option value=member[0]>member[0]</option>
<option value=""></option>
<option value=member[1]>member[1]</option>
<option value=""></option>
...

确实,它在每个新成员

我检查了 $(div[i]) 是否只包含一个或多个对象,但结果是一样的。

注意:我只能在 IE11 中测试它,因为我在不接受其他浏览器的特定环境中工作。 jQuery 版本是 1.10。

【问题讨论】:

  • console.log(members); 显示,结果如何。
  • 您作为参数传递的members 变量是字符串吗?将members=JSON.parse(members); 作为setDataInDropDown() 的第一行

标签: javascript jquery internet-explorer option internet-explorer-11


【解决方案1】:

&lt;option&gt; 没有结束标签,而是每次都有 2 个开始标签。这会导致您的标记无效。

将两个结束标记更改为&lt;/option&gt;

换句话说:

<option><option>

应该是

<option></option>

【讨论】:

  • 妈的我瞎了T_T
猜你喜欢
  • 1970-01-01
  • 2014-10-31
  • 2013-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多