我从数据库中通过AJAX获取数据和附加标签的SELECT语句。下面的代码工作在Firefox,但只是部分地在IE中。在IE浏览器的问题是,是会在下拉列表中选择元素,但“文本”属性值是空的(下拉似乎与30个空行!但是,“值”属性值被设置正确(这是HTE主键从我的数据库)。是否有不同的领域,我需要在IE浏览器不是“文字”等设置?下面格兰代码加粗的文字是我认为问题出。顺便说一句,值不为空,而我试图把在在它的位置文字串,它仍然是空白在IE中。

的代码是:

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

解决方案

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

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

我觉得这是你要什么?

其他提示

允许与块引号再次尝试是:

在解决方案应该是:

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

“选项” 需要与包围<>

altCognito是正确的......但是,如果你是通过整数中循环,确保您使用

键/ value.toString() - 而jQuery将不会引发任何错误,将处理它,它会避免额外的开销

这是所有关于性能,对不对? :)

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

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


$.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"); 
        });

在<>的得到了某种方式丢弃。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top