複数のテキストエリア (100) を含む html シートがあり、それらはすべて同じ ID「編集」を持っています。
私の問題は、すべての単語を個別に数えたいということです...
インターネットで見つけたコードをいくつか試しましたが、最初のテキストエリアでは正常に動作しますが、2番目のテキストエリアでは動作しません...
私は JavaScript のまったくの初心者で、どこから始めればよいかさえわかりません。すべての助けに感謝します。
ありがとう
複数のテキストエリア (100) を含む html シートがあり、それらはすべて同じ ID「編集」を持っています。
私の問題は、すべての単語を個別に数えたいということです...
インターネットで見つけたコードをいくつか試しましたが、最初のテキストエリアでは正常に動作しますが、2番目のテキストエリアでは動作しません...
私は JavaScript のまったくの初心者で、どこから始めればよいかさえわかりません。すべての助けに感謝します。
ありがとう
ID で要素を検索すると、1 つしか返されないため、このアプローチは複数の要素に対しては機能しません。あなたができることは、IDを繰り返すことです。たとえば、要素 1 の id = "edit1"、要素 2 = "edit2"、要素 100 = "edit100" などです。このようにして、単純な for ループでそれらすべてに簡単にアクセスできます。
var rootID = "edit";
var totalWordCount = 0;
for (var i=0; i<100; i++) {
var textElement = document.getElementById(rootID + i);
var textBoxContents = textElement.value;
// Count the words in one textbox.
var textBoxWordCount = 0;
// These are optional, they are there to account for new lines or double spaces
// and will help make your word count more accurate.
textBoxContents = textBoxContents.replace(/(^\s*)|(\s*$)/gi,"");
textBoxContents = textBoxContents.replace(/[ ]{2,}/gi," ");
textBoxContents = textBoxContents.replace(/\n /,"\n");
// This splits up words and counts them based on whether there is a space
// between them or not.
textBoxWordCount = textBoxContents.split(' ').length;
// Add this number of words to the total.
totalWordCount += textBoxWordCount;
}
// totalWordCount now holds the total number of words in all your boxes!
非常に重要なID の並べ替えが完了したら、次のフィドルを使用してください - http://jsfiddle.net/dXcLH/1。
このフィドルでは、それぞれを繰り返し処理textarea
し、リストに値を設定します。
次のようなことを試すことができます:
// tas is all your textareas
var tas= document.getElementsByName("textareas"),
// or document.getElementsByTagName("textarea")
i,arr=[];
for(i=0;i<tas.length;i++){
arr.push({
textareaName:tas[i].name,
//rough word count
wordCount:tas[i].value.split(/\b[^\d\w\-]+\b/ig).length
}];
}
console.log(arr);
Chrome でこのコードを確認し、F12 を押して、コンソールで arr 変数を確認します。それをクリックして、その値を調べることができます。
HTML 仕様で述べられているように、ID は一意でなければなりません。これに準拠しているため、JavaScript コードは失敗しています。最初の ID と一致した後、要素のチェックを続行する理由はありません。