我正在尝试找出一种方法来计算javascript中多个段落块中放置的单词。现在,我有一个连接到函数的按钮,该函数链接到段落中的ID。这是我的代码
function processText(elements) {
var count = 0;
for (var i = 0; i < elements.length; i++) {
count += elements[i].textContent.split(/\s/).length;
}
return count;
}
var wordsInParagraphs = processText(document.getElementsByTagName("data"));
<!DOCTYPE html>
<html>
<head>
<meta name="title" content="The Cask of Amontillado--Edgar Allan Poe (1809-1849)">
</head>
<body>
<p><button 1="processText(elements);">Process</button></p>
<p id="data"></p>
</body>
答案 0 :(得分:1)
标记存在一些问题,例如,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>
答案 1 :(得分:1)
这是您要找的吗?您只需要在单击时调用该函数并获取要计数的所有元素,其余的就在那里(我使用split而不是regex)。
function processText() {
var elements = document.querySelectorAll(".data");
var count = 0;
for (var i = 0; i < elements.length; i++) {
count += elements[i].textContent.split(" ").length;
}
console.log(count)
}
<!DOCTYPE html>
<html>
<head>
<meta name="title" content="The Cask of Amontillado--Edgar Allan Poe (1809-1849)">
</head>
<body>
<p><button onclick="processText();">Process</button></p>
<p class="data">text in paragraph one</p>
<p class="data">text in paragraph two</p>
</body>