我的问题是,代码是用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>