2009-06-18 66 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