如何使用 jQuery 选择多个单独的表列?

问题描述 投票:0回答:1

目前,我用于选择第 2 列和第 7 列的 jQuery 选择器是:

$("table tr td:nth-child(2) span:contains('something'), table tr td:nth-child(7) span:contains('something')")

有没有办法缩短这个?如果我想选择更多的列并且

span:contains('something')
(甚至可能变得更长)它肯定会变得更长,只是不断重复自己。

jquery html-table jquery-selectors
1个回答
-1
投票

你总是可以写一些 jQuery 辅助函数:

jQuery.fn.tableColumnChildren = function(columnIndices, selector){

  const query = columnIndices.map(idx => `tr td:nth-child(${idx + 1}) ${selector}`).join(', ');
  return this.find(query);

};

const children = $('table').tableColumnChildren([0, 1], 'span:contains(something)');

console.log(children);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr><td>test</td><td><span>something</span></td><td>more</td><tr>
<tr><td><span>something</span></td><td>cell test</td><td>data</td><tr>
</table>

© www.soinside.com 2019 - 2024. All rights reserved.