'Undefined'为null或不是对象

时间:2010-02-15 16:03:43

标签: javascript internet-explorer-7

嘿家伙有一个奇怪的问题,基本上一切都很好,但是ie7就像一个小宝宝一样哭并抛出上述错误 - 字符:3,'未定义'为空或不是对象。

我将字符串拆分为需要与另一个字符串进行比较的格式。一旦我拆分了字符串,我就将其拆分 - 例如:

    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行 - 由于错误有3个字符(char:3)。

如果有人能发现问题,请告知我们将不胜感激。

干杯

6 个答案:

答案 0 :(得分:2)

您的问题很可能在第一行:

noteDate = $(xml).find('entry:first published').text();

由于某种原因,您的XML数据未在IE中正确加载。

答案 1 :(得分:0)

在违规行之前插入alert(timeCheck);,我怀疑你会发现它未定义。

答案 2 :(得分:0)

您可以尝试检查dateCheck.length是否为2. noteDate来自何处,是否始终采用dateTtime格式(是ISO日期格式?)。

答案 3 :(得分:0)

您确定“noteDate”确实包含“T”吗?它的外观,“dateCheck [1]”不包含任何内容,使“timeCheck”等于“undefined”。

您可能需要查看“timeCheck”内容(通过FF中的alert或console.log)进行调查。

答案 4 :(得分:0)

我首先会为脚本中的每个变量添加一个警报,以报告其值和类型(alert((typeof varInstance)+': "'+varInstance+'"');),以确保它在IE中的预期。然后id进行相应的调试。那就是说我会像Daniel那样猜测它是xml的一个问题。

答案 5 :(得分:0)

问题不在于我解析xml等的方式,而是因为ie取回xml并将其放入字符串格式这一事实 - 在阅读此帖子http://dev.jquery.com/ticket/3143后解决了问题

并且还从xml - text更改ajax请求中的数据类型。

为每个输入此主题的人欢呼