我不知道术语,但希望这种解释有意义。我有一个JavaScript代码,我想重复10次,每次都有一个越来越多的数字来定位一个表中的每个td(第一个td然后是第二个,然后是第三个,依此类推)
这个JavaScript的目标是将thead的TD宽度与tbody中的宽度相匹配(这是因为我通过css将它们与position:absolute分开)。
现在我设法将单个TD的宽度与此匹配:
var cell4 = $('#divResults tbody > td:nth-child(4)');
$('#divResults thead > tr > td:nth-child(4)').css({ width: cell4.width()});
完成设置剩余TD的最简单但不实用的方法是复制JS,但将数字替换为9次。
我知道有一种方法可以创建循环并定位每个TD而无需手动复制代码,但似乎无法在线找到答案。
我很感激帮助
答案 0 :(得分:3)
不是选择特定元素,而是选择所有元素并循环遍历它们。
$('#divResults tbody > td').each(function( index ) {
// Do some repeating code
});
链接了解更多详情 https://api.jquery.com/each/
答案 1 :(得分:1)
在vanilla JS中,您将使用for循环来实现此目的。使用jQuery,您只需抓取<td>
的集合并使用.each
// Get the first tr's collection of td elements
var bodyTds = $('#divResults tbody tr:first-child td');
// Loop over the head td's (should be th's really)
$('#divResults thead tr td').each(function(index) {
// Apply the width of the body td to the head td
$(this).css({ width: bodyTds.eq(index).width()});
});