5

我的代码:

var isSomethingChecked = (document.getElementByName("koalaCheck").checked ||
                          document.getElementByName("kangarooCheck").checked);

为什么这段代码会抛出一个名为“类型错误”的异常?

4

3 回答 3

15

没有调用函数getElementByName。您需要的是getElementsByName返回具有该名称的所有元素的数组。所以你可以使用:

var isSomethingChecked = (document.getElementsByName("koalaCheck")[0].checked ||    
                         document.getElementsByName("kangarooCheck")[0].checked);
于 2013-04-14T02:36:36.167 回答
3

那是因为正确的方法是document.getElementsByName(). 你错过了一个s。

查看文档

假设您不希望检查每个元素的每个检查状态(因为此方法返回一个数组).. 我会使用document.getElementById().. 但那是没有看到您的 html。

于 2013-04-14T02:34:39.763 回答
0

getElementsByName返回具有给定名称的所有元素的数组。您需要使用该getElementById函数或在返回的数组中指定特定元素,如下所示:

var isSomethingChecked = (document.getElementsByName("koalaCheck")[0].checked || document.getElementsByName("kangarooCheck")[0].checked);

您会收到“类型错误”,因为您正在检查是否检查了数组而不是特定元素。

于 2013-04-14T02:39:22.050 回答