Jquery追加<select>在IE7中不起作用,但在firefox中工作</select>

时间:2009-04-07 10:29:08

标签: jquery firefox internet-explorer-7 drop-down-menu append

我通过AJAX从数据库获取数据并将标记附加到select语句。以下代码适用于Firefox,但仅部分在IE中。 IE中的问题是在下拉列表中创建选项元素,但“text”属性值为空(下拉列表显示有30个空白行!但是,“value”属性值设置正确(这是主键)我的数据库中是否有一个不同的字段需要在IE中设置而不是“文本”?下面的代码中的粗体文字是我认为问题所在.BTW,值不是空的,我试过放入一个字符串文字,它在IE中仍然是空白的。

代码是:

$.each(data, function(key,value){
    $("<option>").attr("value", key).attr("text",value).appendTo("#select1");
});

4 个答案:

答案 0 :(得分:7)

我会尝试使用.text()代替:

  $.each(data, 
       function(key,value){ 
           $("option").attr("value", key)
                .text(value)
                .appendTo("#select1"); 
        });

我认为这就是你想要的目标?

答案 1 :(得分:1)

让我们再用块引号再试一次:

解决方案应该是:

$.each(data, 
       function(key,value){ 
           $("<option>").attr("value", key)
                .text(value)
                .appendTo("#select1"); 
        });

“选项”需要用&lt;&gt;

包围

答案 2 :(得分:0)

我不认为发布的解决方案是正确的。我相信它应该是:


$.each(data, function(key,value){ 
           $("").attr("value", key)
                .text(value)
                .appendTo("#select1"); 
        });


$.each(data, function(key,value){ 
           $("option").attr("value", key)
                .text(value)
                .appendTo("#select1"); 
        });

&lt;&gt;以某种方式被删除了。

答案 3 :(得分:0)

altCognito是正确的...但是,如果你循环整数,请确保使用

key / value.toString() - 虽然jQuery不会抛出任何错误并会处理它,但它会避免额外的开销。

一切都与性能有关,对吗? :)

$.each(data,  
       function(key,value){  
           $("option").attr("value", key.toString()) 
                .text(value.toString()) 
                .appendTo("#select1");  
        });