Javascript ';未定义';是否为null或不是对象
嘿,有一个奇怪问题的家伙基本上在好的老ff中一切都很好,但是ie7哭得像个小婴儿,并且抛出了上面的错误-char:3,“Undefined”为null或不是一个对象 我正在将一个字符串拆分为需要与另一个字符串进行比较的格式。拆分字符串后,我将其进一步拆分-示例如下:Javascript ';未定义';是否为null或不是对象,javascript,internet-explorer-7,Javascript,Internet Explorer 7,嘿,有一个奇怪问题的家伙基本上在好的老ff中一切都很好,但是ie7哭得像个小婴儿,并且抛出了上面的错误-char:3,“Undefined”为null或不是一个对象 我正在将一个字符串拆分为需要与另一个字符串进行比较的格式。拆分字符串后,我将其进一步拆分-示例如下: noteDate = $(xml).find('entry:first published').text(); // split string to get the date - saved in realDate
noteDate = $(xml).find('entry:first published').text();
// split string to get the date - saved in realDate
var dateCheck = noteDate.split("T");
var realDate = dateCheck[0];
var timeCheck = dateCheck[1];
var lastSplit = timeCheck.substring(0, timeCheck.length-1);
var fullFeedDT = (realDate + " " + lastSplit);
IE7目前正在抱怨第四行,但我感觉第三行可能有问题——因为错误有3个字符(char:3)
如果有人能发现问题,请告诉我,我将不胜感激
欢呼声插入
警报(时间检查)代码>在有问题的行之前,我想你会发现它是未定义的。你可以尝试在dateCheck.length为2的复选框中进行检查。noteDate从何而来,是否始终采用dateTtime格式(是否采用ISO日期格式?)您是否确保“noteDate”实际上包含“T”?看起来,“dateCheck[1]”不包含任何内容,使得“timeCheck”等于“undefined”
您可能需要检查“timeCheck”中的内容(通过alert或console.log in FF)以进行调查。您的问题很可能出现在第一行:
noteDate = $(xml).find('entry:first published').text();
由于某些原因,您的XML数据没有在IE中正确加载。我会首先为脚本中的每个变量添加一个警报,以报告其值和类型(alert((typeof varInstance)+':“+varInstance+”;
),以确保它符合您在IE中的预期。然后我会相应地进行调试。也就是说,我猜这是Daniel建议的,是xml的一个问题 问题不在于我解析xml的方式等,而在于ie正在取回xml并将其转换为字符串格式这一事实——在阅读此线程后解决了问题
以及从xml-text更改ajax请求中的数据类型
为所有输入此线程的人干杯FullNoteDate=$(xml)中的所有变量。查找('entry:first published')。text();//拆分字符串以获取日期-保存在realDate var dateCheck=noteDate.split(“T”)中;var realDate=dateCheck[0];var timeCheck=dateCheck[1];var lastSplit=timeCheck.substring(0,timeCheck.length-1);var fullFeedDT=(realDate+“”+lastSplit);正如我在回答中所问的,日期的格式是什么,您确定它始终是那种格式吗?日期/时间的格式是java dateTime格式是的,它将始终是那种格式-Cheers StimeCheck已定义并返回正确的值-在FFThank中,但它已定义-向示例Cheers添加了完整的代码,我刚刚测试了ie7是否可以看到数据——唉,它似乎无法获得数据——我发出了警报,并在ie7-ff中显示了一个可爱的空白警报框,但仍然很好。grrrrI将结束此线程—正如您所建议的,问题似乎在于我解析xml的方式。为您的答案干杯danielthanks-noteDate来自Java web服务生成的XML文件(提要),因此始终以timeDate格式返回