目前,我用于选择第2列和第7列的jQuery选择器是:
$("table tr td:nth-child(2) span:contains('something'), table tr td:nth-child(7) span:contains('something')")
有没有办法缩短这个时间?如果我想选择更多的列,它肯定会变得更长,而span:contains('something')(甚至可能会变得更长)只是不断重复。
span:contains('something')
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>
1条答案
按热度按时间vawmfj5a1#
你可以写一些jQuery的helper函数: