首页 > 解决方案 > 如何使用 javascript/jquery 循环 tbody 的第一个 tr 中的所有单元格?

问题描述

我试图循环 tbody 表第一行中的所有单元格,但是选择单元格时出现了一些问题。在我的代码下面:

$(".datatable_footer_fixed").prepend('<div class="new-foot"></div>');
var cells = document.getElementById('table').rows[0].cells.length;
var index;
for(index= 0; index< cells ; index++){
    cell = $("#table tbody tr:eq(0) td:eq("+index+")");
    if(index == 0 || index == cells-1){
        css = parseInt($(cell).css("width"));
    }else{
        css = parseInt($(cell).css("width")) + 16 + 23;
    }
    $(".new-foot").append("<div style=\"width:"+css+"px;height:20px display:inline-block;\"></div>");
}

变量“cell”为空,因此 var“css”为 NaN,div 附加的宽度为:0px。

如何解决?

编辑:

现在脚本可以工作了,问题是表是用 JQuery 的插件 Datatables.js 生成的,在表初始化后我做了代码但找不到 tr 的内容。我添加了 3000 毫秒的超时,现在它可以工作了。我用 :nth-child() 和 .each() 函数修复了代码。谢谢大家的帮助。

标签: javascriptjqueryhtml

解决方案


在 jQuery 你可以试试这个

jQuery('#table tr:first-child td').each(function(index){

   cell = jQuery(this);
if(index == 0 || index == (jQuery('#table tr:first-child td').length - 1)){
    css = parseInt(cell.css("width"));
}else{
    css = parseInt(cell.css("width")) + 16 + 23;
}

 $(".new-foot").append("<div style=\"width:"+css+"px;height:20px display:inline-block;\"></div>");

})

推荐阅读