0

我有下面的简单 <html> 页面,突出显示“@”图标出现在 <div> 内的 OnLoaded .txt 文件中的时间

我想知道的是......我怎样才能计算 '@' 字符串出现在该 <div> 中的次数?

var openFile = function(event) {
  var input = event.target;
  var reader = new FileReader();
  reader.onload = function() {
    var text = reader.result;
    var output = document.getElementById('output');
    
    const lines = text.split('\n');
    lines.forEach((line) => {
      const div = output.appendChild(document.createElement('div'));
      const textSplitAroundAt = line.split('@');
      textSplitAroundAt.forEach((text, i) => {
        div.appendChild(document.createTextNode(text));
        if (i === textSplitAroundAt.length - 1) return;
        const span = div.appendChild(document.createElement('span'));
        span.textContent = '@';
        span.className = 'colorize';
      });

    });
  };
  reader.readAsText(input.files[0]);
};
.colorize
{
	color: #f90;
	background-color: blue;
}
<center>
  <h1>.TXT Log Parser</h1>
</center>

<center>
  <div id="populateNumbers">I would like the number of times '@' symbol appears here >>> ... </div> 
</center>	

<center>
  <h2><input type='file' accept='text/plain' onchange='openFile(event)'></h2>
</center>
<br/>
<div id='output'>...</div>

4

1 回答 1

0

在活动结束时添加此代码onload

document.getElementById('populateNumbers').textContent = text.split('@').length - 1;

var openFile = function(event) {
  var input = event.target;
  var reader = new FileReader();
  reader.onload = function() {
    var text = reader.result;
    var output = document.getElementById('output');
    
    const lines = text.split('\n');
    lines.forEach((line) => {
      const div = output.appendChild(document.createElement('div'));
      const textSplitAroundAt = line.split('@');
      textSplitAroundAt.forEach((text, i) => {
        div.appendChild(document.createTextNode(text));
        if (i === textSplitAroundAt.length - 1) return;
        const span = div.appendChild(document.createElement('span'));
        span.textContent = '@';
        span.className = 'colorize';
      });

    });
    document.getElementById('populateNumbers').textContent = text.split('@').length - 1;
  };
  reader.readAsText(input.files[0]);
};
.colorize
{
	color: #f90;
	background-color: blue;
}
<center>
  <h1>.TXT Log Parser</h1>
</center>

<center>
  <div>I would like the number of times '@' symbol appears here: <span id="populateNumbers"> ... </span></div> 
</center>	

<center>
  <h2><input type='file' accept='text/plain' onchange='openFile(event)'></h2>
</center>
<br/>
<div id='output'>...</div>

于 2018-05-10T19:21:31.653 回答