jquery实现自定义树形表格的方法【自定义树形结构table】

本文实例讲述了jquery实现自定义树形表格的方法。分享给大家供大家参考,具体如下:

在建安等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、成都网站制作 网站设计制作按需网站设计,公司网站建设,企业网站建设,品牌网站设计,营销型网站建设,外贸网站建设,建安网站建设费用合理。

话不多说,直接上代码(本代码仅提供思路):

function createTables(data, t, p) {
    $("#datatable" + t + ' tbody').empty();
    var count = data.length;
    var html = '';
    if (count > 0) {
      for (var i = 0; i < count; i++) {
        var btn = '';
        if(data[i]._child && data[i]._child.length > 0){
          btn = ' ';
        }else{
          btn = ' ';
        }
        html += '' +
          ''+btn + data[i].name + '(' + data[i].title + ')' + '' +
          '' + (data[i].source_name ? data[i].source_name : '') + '' +
          '' + data[i].show_time + '' +
          '' + dataFormat(data[i].current_record, data[i].unit) + '' +
          '' + dataFormat(data[i].prev_record, data[i].unit) + '' +
          '' + dataFormat(data[i].last_record, data[i].unit) + '' +
          '' + dataFormat(data[i].budget, data[i].unit) + '' +
          '' + dataFormat(data[i].budget_rate, '%') + '' +
          '' + dataFormat(data[i].record_rate) + '' +
          '' + dataFormat(data[i].mom, '%') + '' +
          '' + dataFormat(data[i].yoy, '%') + '' +
          ' ' +
          '';
        if(data[i]._child && data[i]._child.length > 0){
          html = createNewTable(data[i]._child,html,1,t);
        }
      }
    } else {
      html = ' 暂无数据 ';
    }
    $("#datatable" + t + ' tbody').html(html); // 插入的表格
    initTreeAction(t); // 结构初始化
}
function createNewTable(data,html,y,t)
{
    var counts = data.length;
    var num = ++y;
    for (var i = 0; i < counts; i++) {
      var btn = '';
      var css = '';
      css = 'text-indent:'+ (num * 20) +'px;';
      if(data[i]._child && data[i]._child.length > 0){
        css = 'text-indent:'+ (num==2?20:(num-1) * 20) +'px;';
        btn = ' ';
      }else{
        btn = ' ';
      }
      html += '' +
        ''+ btn + data[i].name + '(' + data[i].title + ')' + '' +
        '' + (data[i].source_name ? data[i].source_name : '') + '' +
        '' + data[i].show_time + '' +
        '' + dataFormat(data[i].current_record, data[i].unit) + '' +
        '' + dataFormat(data[i].prev_record, data[i].unit) + '' +
        '' + dataFormat(data[i].last_record, data[i].unit) + '' +
        '' + dataFormat(data[i].budget, data[i].unit) + '' +
        '' + dataFormat(data[i].budget_rate, '%') + '' +
        '' + dataFormat(data[i].record_rate) + '' +
        '' + dataFormat(data[i].mom, '%') + '' +
        '' + dataFormat(data[i].yoy, '%') + '' +
        ' ' +
        '';
      if(data[i]._child && data[i]._child.length > 0){
        html = createNewTable(data[i]._child,html,num,t);
      }
    }
    return html;
}
function showLowData(obj)
{
    var mId = $(obj).attr('data-tid');
    var isOpen = $(obj).hasClass('open');
    if (isOpen) {
      $(obj).removeClass('open');
      if($(obj).hasClass('layui-icon')){
        $(obj).html('');
      }
    } else {
      $(obj).addClass('open');
      if($(obj).hasClass('layui-icon')){
        $(obj).html('');
      }
    }
    $(obj).parents('tbody').find('tr').each(function () {
      var mt = $(this).find('.mt-icon');
      var pid = mt.attr('data-pid');
      var Open = mt.hasClass('open');
      var type = mt.attr('data-type');
      if (mId == pid) {
        if (isOpen) {
          $(this).hide();
          if (type == 'dir' && Open == isOpen) {
            mt.trigger('click');
          }
        } else {
          $(this).show();
        }
      }
    });
}

更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery表格(table)操作技巧汇总》、《jQuery操作xml技巧总结》、《jQuery form操作技巧汇总》、《jQuery常用插件及用法总结》、《jQuery扩展技巧总结》及《jquery选择器用法总结》

希望本文所述对大家jQuery程序设计有所帮助。


当前文章:jquery实现自定义树形表格的方法【自定义树形结构table】
本文网址:http://scyanting.com/article/ppeioi.html