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

ca1c2owp  于 2023-05-22  发布在  jQuery
关注(0)|答案(1)|浏览(134)

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

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

有没有办法缩短这个时间?如果我想选择更多的列,它肯定会变得更长,而span:contains('something')(甚至可能会变得更长)只是不断重复。

vawmfj5a

vawmfj5a1#

你可以写一些jQuery的helper函数:

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>

相关问题