我收到此javascript错误消息
Error: a.getAttribute("rel") is null
在这些代码行上
var i, a;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
}
return null;
任何想法如何解决?
感谢。
答案 0 :(得分:3)
在使用a.getAttribute("rel")
之前,您正在做:
if(a.getAttribute("rel").indexOf("style") != -1 &&
a.getAttribute("title") &&
!a.disabled) {
return a.getAttribute("title");
}
您应该测试它是否为空(或不是“麻痹”):
if(a.getAttribute("rel") &&
a.getAttribute("rel").indexOf("style") != -1 &&
a.getAttribute("title") &&
!a.disabled) {
return a.getAttribute("title");
}
在if
表达式的开头添加条件的第一部分时,仅当{{1}时,将评估条件的第二个(以及之后的部分)是 truthy - 即a.getAttribute("rel")
为a.getAttribute("rel")
时不会评估。
答案 1 :(得分:1)
在尝试将其视为字符串之前,请检查rel
是否已定义。
var rel = a.getAttribute("rel") ;
if(rel && rel.indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) {
return a.getAttribute("title");
}
由于你只关心它,如果它有'样式',我们不需要明确检查它是否已定义,并且只能测试它是否真实。
答案 2 :(得分:1)
你的循环正在点击没有指定a
的{{1}}(我猜这会适用于大多数人)。
rel