当前位置:  开发笔记 > 前端 > 正文

如何计算具有rowspan属性的表行

如何解决《如何计算具有rowspan属性的表行》经验,为你挑选了1个好方法。

嗨,我正在动态创建表结构.当我单击一个包时,我将子行插入到表中,并添加了一个带有子值计数的rowspan值.现在我必须对我使用行的索引进行编号,但是当有行跨时它应该考虑整个行,如下所示1下一个数字必须是2.当我单击删除时我需要删除所有行跨越的子行.这是我实施的代码,

  var rowspans;
  var servicecount;
  var cnt;
  var ser = [];
  var refForEmployee = new Firebase("https://kekranmekrandubai.firebaseio.com/package");

  refForEmployee.on("value", function(snapshot) {
    var data = snapshot.val();
    var list = [];

    for (var key in data) {
      if (data.hasOwnProperty(key)) {
        name = data[key].image ? data[key].image : '';
        emp_name = data[key].package_name ? data[key].package_name : '';
        service = data[key].service ? data[key].service : '';
        servicecount = service.length;

        console.log("service data");
        console.log(service);
        console.log(servicecount);
        if (name.trim().length > 0) {
          list.push({
            image: name,
            emp_name: emp_name,
            services: service
          })
        }
      }
    }
    // refresh the UI
    refreshUI(list);


  });
  function refreshUI(list) {
    var lis = '';
    for (var i = 0; i < list.length; i++) {
      var empname = list[i].emp_name;
      var serc = [];
      serc = list[i].services;
      lis += '

' + list[i].emp_name + '

Last name

1001

' + serc + '

'; }; document.querySelector('#employee_list').innerHTML = lis; }; $('body').on('click', '.employeeimages', function() { var name = $(this).closest('.customize').find('.firstname').text(); var service = []; service = $(this).closest('.customize').find('.arrays').text(); console.log(service); //var myString = "Mr. Jack Adams"; // Create a variable to contain the array var mySplitResult; // Use the string.split function to split the string mySplitResult = service.split(","); for (i = 0; i < mySplitResult.length; i++) { console.log(mySplitResult[i]); $("#booktable").append('

Select Items

' + mySplitResult[i] + '

Price
'); } rowspans = mySplitResult.length; get_values(name, table_selected_index); $(".select_employee_div").css("display", "none"); }); //booking main table //add row to booking table $(".useradd").click(function() { var rows = $('#booktable tr').length; var rowcount = rows + 1; $("#booktable").append('' + rowcount + '

Select Items

Price
'); }); //remove row and dynamically changing the index value of the removed row $("body").on("click", ".remove", function(event) { event.preventDefault(); var table = 'booktable'; var row = $(this).closest('tr'); setTimeout(function() { // Simulating ajax var siblings = row.siblings(); row.remove(); siblings.each(function(index) { $(this).children().first().text(index + 1); }); }, 100); }); $('#booktable').on('click', '.select_employee', function() { $(".select_employee_div").css("display", "block"); var indexOfTheChangedRow = $(this).closest("tr").index(); table_selected_index = indexOfTheChangedRow; }); function get_values(val, rowIndex) { console.log("inside get_values function"); console.log(val); $('#booktable tr:eq(' + rowIndex + ')').find(".select_employee").val(val); $('#booktable tr:eq(' + rowIndex + ')').find(".f").attr("rowspan", rowspans + 1) };

这是我需要的表结构

在此输入图像描述

这是我实现的小提琴演示.我很惊讶改变行索引并删除操作.小提琴演示请帮我编码.先感谢您.



1> Vixed..:

这可能是你正在寻找的:

$('body').on('click', '.remove', function(e){
    e.preventDefault();
    var row=$(this).closest('tr');
    row.nextAll().each(function(){
        if ($('td',this).is('[rowspan]')){
            $(this).remove()
        } else {
         row.remove(); // before exit from loop
         return false;
        }
    })
    row.remove(); //for the last TR
    $('tr').each(function(i) {
        $('td:first',this).text(i+1); //For re-index
    });
})

或者,如果您只需要删除第一行和后两行,这应该可以解决您的问题:

$('body').on('click', '.remove', function(e){
    e.preventDefault();
    var row = $(this).closest('tr');
    row.add(row.nextAll().slice(0,2)).remove();
});

感谢answare:Jquery Next/NextAll/NextUntil具有计数限制

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有