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

时间:2015-03-12 08:17:30

标签: javascript jquery

我们说我多次使用此表,我想计算每个表的第二个td tr:eq(0) td:eq(1),例如在这种情况下" 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>

你会怎么做?

3 个答案:

答案 0 :(得分:3)

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

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);

答案 1 :(得分:2)

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

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

Working Demo

然后使用.each()分别迭代它们:

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

更新:查找长度

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

答案 2 :(得分:0)

这会让你算一算:

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>