在每次运行中重复使用不同数字的javascript代码

时间:2016-05-11 21:31:06

标签: javascript jquery html html-table

我不知道术语,但希望这种解释有意义。我有一个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而无需手动复制代码,但似乎无法在线找到答案。

我很感激帮助

2 个答案:

答案 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()});
});