如何查找一个单词在动态创建的html表行中出现的次数

how to find how many times a word occurs in the html table row which is dynamically created

本文关键字:html 创建 查找 何查找 单词 一个 动态      更新时间:2023-09-26

我写了一个xlst代码来将xml转换为html,这在html中创建了很多表。

表中有一个名为"Type"的列。其中包含单词

1) Trace2) 验证3) 行动

以上3个单词将在表格的同一列中重复多次。我的要求是显示每个单词在列中出现的次数

当html页面加载时,我应该立即显示计数


下面是表的一般模式

/*Table Schema*/
<table>
<tr>
 <th>Time</th>
 <th>Position</th>
 <th>Type</th>
 <th>Message</th>
</tr>
<tr>
 <td>....</td>
 <td>....</td>
 <td>Action</td>
 <td>....</td>
</tr>
<tr>
 <td>....</td>
 <td>....</td>
 <td>Verification</td>
 <td>....</td>
</tr>
<tr>
 <td>....</td>
 <td>....</td>
 <td>Trace</td>
 <td>....</td>
</tr>
<tr>
 <td>....</td>
 <td>....</td>
 <td>Error</td>
 <td>....</td>
</tr>

以上是该表的一般模式,单词action、trace、error、verification在单个表中多次出现每种类型的大约有5个表

演示:http://jsfiddle.net/PhB7x/5/演示

您可以使用jquery 来完成此操作

考虑示例html

  <table>
<tr>
    <th>Trace</th>
    <th>Verification </th>
    <th>Action</th>
</tr>
<tr>
    <td>A</td>
    <td>B</td>
    <td>CC</td>
</tr>
<tr>
    <td>D</td>
    <td>E</td>
    <td>CC</td>
</tr>
</table>
<table>
<tr>
    <th>Some</th>
    <th>Thing</th>
    <th>Dont</th>
</tr>
<tr>
    <td>A</td>
    <td>B</td>
    <td>CC</td>
</tr>
<tr>
    <td>D</td>
    <td>E</td>
    <td>CC</td>
</tr>
</table>

js将是

   $(document).ready(function ()
{
    getOccurance("CC");
    function getOccurance(word)
    {
        $("table").each(function (tindx, tobj)
        {
            var noOfOccurance = 0;
            $("tr td:gt(1)", $(tobj)).each(function (ind, obj)
            {
                if (word == $.trim($(obj).text())) noOfOccurance++;
            });
            alert("Word " + word + " occurs " + noOfOccurance + " times in table  " + (tindx + 1));
        })
    }
})

在加载时获取计数的演示

从每个表中获取计数的演示

从每个表中获取计数并在html中显示结果的演示

我会将该行的文本放入一个变量中,并对所需单词进行匹配,例如"Trace"。类似以下内容:

var row = $('tr#action').text();
var count = row.match(/Trace/g);

下面是一个工作示例:

http://jsbin.com/otezes/1/

$(document).ready(function(){
  var rows = $("#aaa tr");
  var arr = {};
  rows.each(function(){
    var val = $(this).find("td").eq(0).text();
    if (val === "") return;
    if (typeof(arr[val])!= "undefined"){
      arr[val] = ++arr[val];
    }
    else{
      arr[val] = 1;
    }
  });
  console.log(JSON.stringify(arr));
});