2009-06-18 92 views
0

这肯定是一个JS初学者问题。关于DOM的变量

我的问题是我想使用变量type的值来访问相关的复选框;但是它将该变量视为一个字符串。我尝试过两种方法。

function toggleGroup(type) { 
    if (document.getElementById(type).checked == true){ 
     alert("foo"); 
    } 
} 

function toggleGroup(type) { 
    if (document.nav.type.checked == true){ 
     alert("foo");   
    } 
} 
+0

确实比较。举例来说,'foo'是最复杂思想的选择。 – jrharshath 2009-06-18 12:00:00

回答

4

我们不知道类型应该如何处理的方式 - 你还没有告诉我们这个函数是如何被调用(特别是,我们不知道你是什么正在通过作为它的论据)。

如果字符串(匹配的元素的id),比document.getElementById(type).checked应该工作(虽然== true是冗余的)。

document.nav.type.checked应该不起作用,因为点符号属性名称不是插值的。您必须使用square bracket notation表示:document.forms.nav.elements[type].checked。这将匹配名称或ID - 如果您有多个具有相同名称的元素,则document.forms.nav.elements[type]将成为可视为数组的对象(并且不会具有checked属性)。

-1

你可以和“真”

+0

与字符串“true”相比,只需要额外的类型转换,使代码不太清晰,并且暗示您可以将假值与字符串“false”进行比较并获得匹配结果。 – Quentin 2009-06-18 12:01:46