Javascript对象和internet explorer
我有以下代码:Javascript对象和internet explorer,javascript,internet-explorer,object,Javascript,Internet Explorer,Object,我有以下代码: jsonObj = []; $("#test").find('.data').each(function() { var description = $(this).find('.description').val(); var food = $(this).find('.food').val(); item = {} item ["description"] = description; item ["food"] = food;
jsonObj = [];
$("#test").find('.data').each(function() {
var description = $(this).find('.description').val();
var food = $(this).find('.food').val();
item = {}
item ["description"] = description;
item ["food"] = food;
jsonObj.push(item);
});
Internet explorer 11插入空/空值。
当然,它在chrome firefox甚至edge中都能很好地工作,我可以使用IE11中的代码复制这个问题 问题是您没有声明
项
,因此您使用的是全局项
(感谢1),它是IE11中预定义的本机函数,您无法覆盖或向其添加属性(,根据)。在其他浏览器中,它不是预定义的(或可覆盖的)
这里的课程是:声明变量:-)如果您这样做,它在IE11上也会起作用():
var jsonObj=[];//***
$(“#test”).find(“.data”).each(函数(){
var description=$(this.find('.description').val();
var food=$(this.find('.food').val();
var item={}//***
项目[“说明”]=说明;
项目[“食品”]=食品;
jsonObj.push(项目);
});
$(“”).text(“结果:+JSON.stringify(jsonObj,null,2)).appendTo(document.body)代码>
“插入空/空值”-在哪里?给出了什么输入?您是如何/何时进行测试的?我可以用以下内容来验证OP关于IE11的说法:旁注:jsonObj
是一个值不是JSON的变量的奇数名称。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么就不是JSON。您的jsonObj
是一个数组。