2013-12-20 169 views
1

JSLint在第2行(使用for循環)時給了我一個「意外的」錯誤,並且此時它也停止掃描文件。爲什麼JSLint給我一個「Unexpected」。'「這個代碼錯誤?

var form = document.form1; 
for (var i=0; i < form.elements.length; i++) { 
    // inner-loop code not included here 
} 

我在Chrome中查看了開發者控制檯,而form.elements確實包含了我期望的內容。爲什麼JSLint給我這個錯誤?

我通過PhpStorm使用JSLint。

+2

它抱怨哪一行?您向他們展示了多行帶有'.'的行。 –

+2

Crockford認爲所有的聲明都發生在函數的頂部。 'var form = document.form1,i = 0;'並將'i ++'改爲'i + = 1' – robbmj

+2

你在'{...}'之間的for循環中有代碼嗎? –

回答

1

我無法在JSLint中重現您的問題。但是,由於JS沒有塊範圍,而是功能範圍,所以JSLint(Doug Crockford)推薦在函數頂部發生的所有變量聲明。

另外,他建議不要使用++運營商,而是使用+= 1。嘗試在JSLint中的下面的代碼,並確保「承擔瀏覽器」設置爲真

function foo() { 
    'use strict'; 

    var form = document.form1, 
     i; 
    for (i = 0; i < form.elements.length; i += 1) { 
     window.console.log(i); 
    } 
} 
1

我們需要更多的信息才能真正回答這個問題。 HTML和所有的JS。如果發佈的問題太長,您可以嘗試在類似http://jsfiddle.net/

之類的服務中託管它。如果不能重現它,我會猜想document.form1不是您想要的。也許你的意思是document.forms。這樣可以訪問DOM中的所有表單作爲htmlCollection,您可以像數組一樣訪問它。例如document.forms[1]。閱讀更多在https://developer.mozilla.org/en-US/docs/Web/API/document.forms

相關問題