Javascript - 无法调用null的方法'split'

时间:2012-03-23 17:03:20

标签: javascript jquery cookies split

我的网站上发生了一个javascript错误,我很确定我知道为什么,但我不知道如何修复它!

这是错误:

Uncaught TypeError: Cannot call method 'split' of null

这是我的JS代码:

$(function(e) {
    if (document.cookie.indexOf("login") >= 0) {
        $("a#loggedInUser").html( $.cookie("login").split("|")[0] );
    }
});

我只是想显示存储在“登录”cookie中的用户名。现在,我很确定错误是因为有时返回的值不是字符串,那么它没有split方法,因此会导致此错误。

我该如何解决?有任何想法吗?

谢谢!

3 个答案:

答案 0 :(得分:6)

如果值为null,你可以做这样的事情来设置默认值。

var login = $.cookie("login") || "";
$("a#loggedInUser").html(login);

此外,如果你这样做,你可能不需要document.cookie.indexOf

答案 1 :(得分:2)

可能是$.cookie("login")没有返回有效字符串的情况。我认为问题在于:document.cookie.indexOf("login") >= 0可能是真的,但$.cookie("login")仍然是nullundefined。使用相同的检查是有意义的,例如:

$(function(e) {
    var cookie = $.cookie("login");
    if(cookie) {
        $("a#loggedInUser").html( cookie.split("|")[0] );
    }
});

答案 2 :(得分:0)

检查cookie的长度。这样您就可以同时验证两件事。

if (document.cookie.indexOf("login") >= 0 && $.cookie("login").length) {
    $("a#loggedInUser").html( $.cookie("login").split("|")[0] );
}