的JavaScript類型錯誤時,一個textarea的值給一個變量
var textarea = document.getElementById("textarea").value;
HTML
<textarea id="textarea" cols="100" rows="10">du hello!</textarea>
的JavaScript類型錯誤時,一個textarea的值給一個變量
var textarea = document.getElementById("textarea").value;
HTML
<textarea id="textarea" cols="100" rows="10">du hello!</textarea>
TypeError: Result of expression
'document.getElementById("textarea")' [null]
is not an object.
此錯誤指出它無法找到ID爲「文本區域」的元素。此getElementById
操作的結果因此是null
,並且您不能在null
上訪問.value
,因爲它沒有任何屬性。
這樣做的根本原因在於,搜索時不存在具有id「textarea」的元素。要麼你在某個地方出現錯字,要麼你的腳本在元素不存在的時候運行(還)。如果你的腳本是在標題,你會想它這樣寫:
document.ready = function() {
... script here ...
}
,直到該文件已準備就緒,所有的元素存在,這將延緩執行。
我檢查了一切,錯字不是問題。 我試過把'document.ready =(){/ *在我的腳本里放在* /}'的頭部,調試過並沒有得到任何錯誤,但是它仍然沒有提示textarea的值。我把腳本放在'
'裏面,然後工作。 jready是不是'.ready'?我正在製作一個簡單的Web應用程序,我不想使用任何JS框架。 – Espresso 2010-04-08 06:12:27@Espresso不,'document.ready'不是jQuery特有的,但它可能是瀏覽器特定的。你可以選擇'window.onload'。你需要發佈更多的代碼,我認爲現在已經清除了明顯的缺陷。 – deceze 2010-04-08 06:31:46
如果您正在使用所見即所得的編輯器像TinyMCE的否則後果不堪設想。 document.getElementById(「textarea」)。value;將無法工作,他們有自己的方法來獲取數據。
<script type="text/javascript">
function test(name){
var textarea = document.getElementById("textarea").value;
alert(textarea)
}
</script>
<textarea id="textarea" cols="100" rows="10">du hello!</textarea>
<a href="javascript:void(0)" onclick="javascript:test('this is just testing')">Test TextArea</a>
我的意思是說文本編輯器。除了你也可以檢查是否應該有一個標籤id =「textarea」。你可以檢查你的瀏覽器請參考編輯後的答案。 – Salil 2010-04-08 05:29:15
你應該真的說出你得到了什麼確切的錯誤... – sth 2010-04-08 03:47:26
適合我......你使用的瀏覽器是什麼? – Kip 2010-04-08 03:54:14
@Kip我在Safari上運行它和@sth它給了我錯誤:「TypeError:表達式結果'document.getElementById(」textarea「)'[null]不是一個對象。」 – Espresso 2010-04-08 05:03:28