jQuery每个表计数相同字符串的数量

jQuery each table count the number of the same string

本文关键字:字符串 jQuery      更新时间:2023-09-26

假设我多次拥有此表,我想计算每个表tr:eq(0) td:eq(1)第二个td,例如在本例中"adam"= 2。

   <table>      
        <tr>
            <td>#</td>
            <td>adam</td>
            <td>peter</td>
            <td>danny</td>
            <td>zack</td>
        </tr>
   </table>
   <table>      
        <tr>
            <td>#</td>
            <td>adam</td>
            <td>peter</td>
            <td>danny</td>
            <td>zack</td>
        </tr>
   </table>

你会怎么做?

创建一个包含每个名称计数的对象:

var counts = {};
$('table tr td:nth-child(2)').each(function() {
    var name = $(this).text();
    if (name in counts) {
        counts[name]++;
    } else {
        counts[name] = 1;
    }
}
console.log(counts);

您可以使用nth-child选择器:

$('table tr td:nth-child(2)');

工作演示

然后使用 .each() 单独迭代它们:

$('table tr td:nth-child(2)').each(function(){
  console.log($(this).text());
});

更新:用于查找长度

$('table tr td:nth-child(2)').length;

这将让你计算它:

var list = '';
$('table:eq(0) td').each(function() {
    list += $(this).text() + ":" + $('td:contains(' + $(this).text() + ')').length + "<br>"
});

$('h3').append(list);

结果在:

#:2
adam:2
peter:2
danny:2
zack:2

请参阅下面的操作。

var list = '';
$('table:eq(0) td').each(function() {
  list += $(this).text() + ":" + $('td:contains(' + $(this).text() + ')').length + "<br>"
});
$('h3').append(list);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>#</td>
    <td>adam</td>
    <td>peter</td>
    <td>danny</td>
    <td>zack</td>
  </tr>
</table>
<table>
  <tr>
    <td>#</td>
    <td>adam</td>
    <td>peter</td>
    <td>danny</td>
    <td>zack</td>
  </tr>
</table>
<h3></h3>