用Java进行字数统计

时间:2019-02-27 22:21:40

标签: javascript html id

我正在尝试找出一种方法来计算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>

2 个答案:

答案 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 &nbsp;&nbsp;&nbsp;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>