3

我有一个 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。任何帮助将不胜感激!

4

1 回答 1

6

你可以使用

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

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

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

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

如果你想防止单词结尾和单元格结尾,并确保它不是 a 属性的一部分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});

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

演示(打开控制台)

于 2012-11-15T20:50:09.350 回答