我的网站上发生了一个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方法,因此会导致此错误。
我该如何解决?有任何想法吗?
谢谢!
答案 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")
仍然是null
或undefined
。使用相同的检查是有意义的,例如:
$(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] );
}