getElementsByName返回Type Error?

时间:2013-04-14 02:32:02

标签: javascript checked unchecked

我的代码:

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

为什么这段代码会抛出一个名为“Type Error”的异常?

3 个答案:

答案 0 :(得分:8)

没有名为getElementByName的功能。你需要的是getElementsByName,它返回一个包含该名称的所有元素的数组。所以你可以使用:

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

答案 1 :(得分:3)

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

查看documentation

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

答案 2 :(得分:0)

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

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

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