Javascript-无法调用方法'拆分'为null

Javascript - Cannot call method 'split' of null

本文关键字:拆分 null 方法 Javascript- 调用      更新时间:2023-09-26

我的网站上出现了一个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方法,所以它导致了这个错误。

我该怎么解决?有什么想法吗?

谢谢!

如果值为null,您可以这样做来设置默认值。

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

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

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

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

检查cookie的长度。通过这种方式,您可以同时验证两件事。

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