我的问题是,代码是用Jquery编写的,我想将其转换为Javascript,但是找不到关于contains的javascript文档。

如果您想知道它是如何工作的,那么让我解释一下。表格内有单词“CRITICAL”和“SAFE”,这将计算表格内有多少CRITICAL。因此,此处的预期输出为:

6

不能添加类名或ID,因此请不要使用类名或ID名称。

file.php
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<table>
<tr>
 <td>CRITICAL </td>
 <td>CRITICAL </td>
 <td>CRITICAL </td>
 <td>SAFE</td>
</tr>
<tr>
 <td>SAFE</td>
 <td>CRITICAL </td>
 <td>CRITICAL </td>
 <td>CRITICAL </td>
</tr>
</table>

JS文件
var test = $('td:contains(CRTICAL)');

console.log(test.size());

最佳答案

您可以创建一个可重用的函数,该函数接受元素数组和需要搜索的文本,然后从该函数返回计数:

var test = document.querySelectorAll('table tr td');

function getCount(elem, text) {
  var count = 0;
  for (var i = 0; i < elem.length; i++) {
    if (elem[i].innerText.trim().indexOf(text) !== -1) {
      count++;
    }
  }
  return count;
}


console.log('CRITICAL-->' + getCount(test, 'CRITICAL'));
console.log('SAFE-->' + getCount(test, 'SAFE'));
<table>
  <tr>
    <td>CRITICAL </td>
    <td>CRITICAL </td>
    <td>CRITICAL </td>
    <td>SAFE</td>
  </tr>
  <tr>
    <td>SAFE</td>
    <td>CRITICAL </td>
    <td>CRITICAL </td>
    <td>CRITICAL </td>
  </tr>
</table>

10-07 15:45