0

如果 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>
4

4 回答 4

1

由于第一个元素不存在the_idnull. 调用该方法getElementsByTagNamenull导致错误。

于 2012-07-31T00:31:33.830 回答
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');
}
于 2012-07-31T00:31:00.517 回答
0

the_id为空,并且null没有getElementsByTagName方法。呃。

在编写代码之前确保 ID 存在,或者通过以下方式明确检查它:

var the_lis = the_id ? the_id.getElementsByTagName('li') : [];
于 2012-07-31T00:31:25.207 回答
0

据我了解, getElementsByTagName 返回一个数组。但是在此之前, the_id 应该为 null 或未定义,因为它不存在,因此您尝试在 null 实例上调用 getElementsByTagName。

我建议(除非不适用)使用 jquery 来做任何你想做的事情,并使用 firebug 来调试你的 JavaScript

于 2012-07-31T00:36:37.630 回答