javascript - 计算特定值在表中出现的次数

标签 javascript jquery

我有一个 html 表,其中包含句子中的名称列表,这些句子位于 <td> 内元素(即 <td>Mike (Jeremy's father) used to play piano</td><td>The only one who speaks french is Desmond, but Mike speaks very well spanish</td> )。我想计算特定名称在整个表格中出现的次数。我需要通过 javascript/jquery 完成此操作,而不是通过 php。 任何帮助将不胜感激!

最佳答案

你可以使用

var nbMikeInTheTable = (' '+$('table').text()+' ').split('Mike').length-1;

(添加“”是为了兼容 IE 上 split 的错误实现)

或者,如果您想确定它是整个单词并且没有被 HTML 剪切

 var nbMikeInTheTable = $('table').html().split(/\W+/).filter(
     function(v){return v=="Mike"}
 ).length;

如果您想防止出现单词结尾和单元格结尾并确保它不是 td 属性的一部分,则情况会稍微复杂一些:

var nbTimesMikeIsInTheTable = $('table td').map(function(){
    return $(this).text().split(/\W+/).filter(function(v){return v=="Mike"}).length
}).toArray().reduce(function(p,v){return p+v});

这并不优雅,但可能不需要;)

Demonstration (open the console)

关于javascript - 计算特定值在表中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13405936/

相关文章:

HTML 中的 Javascript : How to insert a user input into the middle of a string automatically?

javascript - NestJS 中用于键值对对象的 ValidationPipe

javascript - "Outsource"将重复代码放入带有参数的函数中(js)

javascript - (REACT) 如何从数组创建动态选择选项列表

javascript - 仅当用户接受 cookie 政策时,Google 跟踪代码管理器才会触发代码

javascript - 在 Javascript 中访问事件处理程序内的类成员变量

javascript - 将数字相加

javascript - 使用 Jquery 设置复选框

jquery - 如何使搜索工具栏中的 html5 日期字段尊重列宽

jquery - 选择其类之一以特定字符串开头的元素