2013-11-20 26 views
0

我收到以下錯誤;JavaScript中的空錯誤

TypeError: 'null' is not an object   (evaluating)'document.querySelector('input[name="question1"]:checked').value')question1scoring.js:2 

指定的行包含代碼;

var answer = document.querySelector('input[name="question1"]:checked').value; 

我假設它給了我這個錯誤,因爲它不能在函數運行時創建值。有人可以告訴我如何避免這個錯誤?

在此先感謝。

+5

查詢選擇沒有找到任何東西,所以它返回null,你試圖採取'.value'。 –

回答

0

也許三元運營商可能會更好地工作,避免異常:

var answer1 = document.querySelector('input[name="question1"]:checked')?true:false; 

說明:

如果document.querySelector( '輸入[名稱= 「問題1」]')沒有選中,三元運算符的第一部分(條件)將不會被滿足,所以返回值爲「假」;否則,它會像你期望的那樣返回「真」。

+0

代碼行正在檢索兩個可能的值中的一個,在這種情況下true或false值是否不會覆蓋.value屬性? – CDES5189

+0

有多種方式來執行此任務,我的方法是不使用.value屬性,因爲它可能發生它不存在並觸發錯誤。在我的理解中,你只是想知道選擇的答案,對吧? – opalenzuela

+0

只有一個問題,如果沒有選擇一個選項。如果選擇了選項,我需要該值,如果沒有選擇任何選項,我想要反饋給用戶,但只有在函數運行後纔會反饋給用戶。 – CDES5189