首页 > 解决方案 > 使用 jquery 过滤器查找每个 x td

问题描述

我有如下表格:

<tr class="m-s-3">
    <td>A</td>
    <td>B</td>
    <td>20</td>
    <td>D</td>
</tr>
<tr class="m-s-3">
    <td>A</td>
    <td>B</td>
    <td>
        <span>44</span>
    </td>
    <td>D</td>
</tr>
<tr class="m-s-3">
    <td>A</td>
    <td>B</td>
    <td>55</td>
    <td>D</td>
</tr>

对于找到的每个类 ms-3,我想像这样在数组中获取第三个 td 文本:

var result = [
  '20',
  '44',
  '55'
]

我试过了,但它只返回第一个结果:

var result= $('.m-s-3').find("td").filter(function( index ) {
  return index === 2;
}).text()
console.log(result)

标签: javascriptjquery

解决方案


您可以简单地$.mapnth-child选择器结合使用:

jQuery(function($) {
  const result = $.map($('.m-s-3 td:nth-child(3)'), td => $(td).text().trim());
  console.log(result);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr class="m-s-3">
    <td>A</td>
    <td>B</td>
    <td>20</td>
    <td>D</td>
  </tr>
  <tr class="m-s-3">
    <td>A</td>
    <td>B</td>
    <td>
      <span>44</span>
    </td>
    <td>D</td>
  </tr>
  <tr class="m-s-3">
    <td>A</td>
    <td>B</td>
    <td>55</td>
    <td>D</td>
  </tr>
</table>


推荐阅读