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

时间:2012-11-15 20:48:41

标签: 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。 任何帮助都会受到欢迎!

1 个答案:

答案 0 :(得分:6)

您可以使用

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

(添加''是为了与IE上拆分的错误实现兼容)

或者,如果你想确定它是整个单词而且它不是由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)