У разметки есть некоторые проблемы, например, 1="processText(elements);"
, вероятно, вы имели в виду onClick="processText(elements);"
, однако вы передаете параметр с именем elements
.Кроме того, у вас есть тег с id="data"
, и вы пытаетесь найти имя тега для этих элементов.
Лучшим подходом является использование функции addEventListener
для лучшей логики, и вы должны пометить эти абзацы, используяимя класса class="data"
.Наконец, для разбиения по пробелам используйте это регулярное выражение /\s+/
function processText(elements) {
var count = 0;
for (var i = 0; i < elements.length; i++) {
count += elements[i].textContent.split(/\s+/).length;
}
return count;
}
document.getElementById('myButton').addEventListener('click', function() {
var wordsInParagraphs = processText(document.getElementsByClassName("data"));
document.getElementById('total').textContent = wordsInParagraphs;
});
<p><button id='myButton'>Process</button></p>
<p class="data">Ele from Stack</p>
<p class="data">Ele from Venezuela</p>
<p id='total'></p>