私は自分のウェブページにN個のtextarea要素を置くことができ、ユーザが何かを入力しようとするたびにtextareaの値を取得したいと考えています。私は、コードJavaScriptのテキストエリアの値を取得することができません
<textarea rows="10" cols="25">
</textarea>
<textarea rows="10" cols="25">
</textarea>
<textarea rows="10" cols="25">
</textarea>
を書き、スクリプトが
document.addEventListener('DOMContentLoaded', function(){
var textareas = document.getElementsByTagName("textarea");
console.log(textareas.length);
for(var i = 0; i<textareas.length; i++){
textareas[i].onkeypress = function(){
console.log(textareas[i].value);
}
}
});
ラインconsole.log(textareas.length);
が値3を印刷しているが、console.log(textareas[i].value);
がエラー私は意味
Uncaught TypeError: Cannot read property 'value' of undefined
を投げている理由を私は理解していないですtextareas[i]
が定義されていない場合は、なぜtextareas[i].onkeypress
が正しく動作しているのですか?それが間違っている場合は、ユーザーが何かを書いたときにそれぞれのテキストエリアの価値をどのように得ることができますか?
ジャスト 'はconsole.log(テキストエリア[i]の.VALUE)置き換える;'はconsole.log(this.value)での ';'。 – blex
うまく動作していますが、 'textarea [i]'が存在しない場合、なぜこれがうまく動作していますか? 'textareas [i] .onkeypress' – viveksinghggits
forループの関数を定義することは頭痛になります。イテレータ 'i'は、無名関数の中にあると期待されるものではありません。 – 1sloc