如果ID不存在,则脚本会中断。为什么呢?
如何挑战the_lis?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>test</title>
</head>
<body>
<script>
window.onload = function(){
alert('this will alert');
var the_id = document.getElementById('a_id_that_does_not_exist'),
the_lis = the_id.getElementsByTagName('li');
alert('this will NOT alert');
}
</script>
</body>
</html>
答案 0 :(得分:1)
由于第一个元素不存在,the_id
将为null
。在getElementsByTagName
上调用方法null
将导致错误。
答案 1 :(得分:0)
你真的应该首先使用the_id
语句检查if
是否存在,否则将抛出异常。
window.onload = function(){
alert('this will alert');
var the_id = document.getElementById('a_id_that_does_not_exist');
if (the_id != undefined)
the_lis = the_id.getElementsByTagName('li');
alert('this will NOT alert');
}
答案 2 :(得分:0)
the_id
为空,null
没有getElementsByTagName
方法。咄。
在编写代码之前确保ID存在,或者使用以下内容明确检查:
var the_lis = the_id ? the_id.getElementsByTagName('li') : [];
答案 3 :(得分:0)
根据我的理解,getElementsByTagName返回一个数组。但是在此之前,the_id应为null或未定义,因为它不存在,因此您尝试在空实例上调用getElementsByTagName。
我建议(除非不适用)使用jquery做任何你想做的事情,并使用firebug调试你的JavaScript