【问题标题】:Dynamically Move Table Cell (up/down)-javascript动态移动表格单元格(上/下)-javascript
【发布时间】:2011-01-10 22:17:40
【问题描述】:

组, 我有一个使用设备 ID 动态构建的表。我有一个“swapCell”,当用户单击(上/下)按钮时,它会上下移动单元格。 我有一个删除当前行的删除行功能。

-问题是:如果我有六行 (1,2,3,4,5,6) 和六个 id (id=row1,id=row2,id=row3,id=row4,id=row5,id =row6)

-删除“第2行和第4行”我有新行(1,2,3,4)和新的(id=row1,id=row3,id=row5,id=row6)

-但在删除当前行后,我希望“id”与行号相同。


function swapcells(idA,idB){
    var cellA=document.getElementById('cell'+idA); 
    var cellB=document.getElementById('cell'+idB); 
    if(cellA&&cellB){ 
        var temp=cellA.innerHTML; 
        cellA.innerHTML=cellB.innerHTML; 
        cellB.innerHTML=temp; 
    }
}  
function deleteRows(rowObjArray){
    if (hasLoaded) {
        for (var i=0; i<rowObjArray.length; i++) {
            var rIndex = rowObjArray[i].sectionRowIndex;
            rowObjArray[i].parentNode.deleteRow(rIndex);
        }
    }
}

【问题讨论】:

    标签: c# javascript gridview datatable cell


    【解决方案1】:

    ID 基于纯 Javascript 的索引

    function reIDRows() {
      var rows = document.getElementById("myTable").getElementsByTagName("tr");
      for (var i = 0; i < rows.length; i++) {
        rows[i].id = i;
      }
    }
    

    ID 基于 jQuery 索引

    function reIDRows() {
      $("tr").each(function(i,o){
        $(this).attr("id", i);
      });
    }
    

    【讨论】:

    • @Jonathan 不幸的是,我认为人们经常使用 jQuery :)
    • 我不得不承认 jquery 或原型(或类似的)在大多数情况下都比普通 JS 更可取,尤其是对于 Chad 的情况。我仍然倾向于在过度依赖框架之前了解 如何 做 vanilla JS 很重要。
    • @Jonathan 我完全同意。如果没有(至少)对 Javascript 有一定的了解,没有人应该使用 jQuery。
    • 我的表格行 id 是基于迭代的 ---- if (hasLoaded) { var tbl = document.getElementById(TABLE_NAME); var nextRow = tbl.tBodies[0].rows.length; var 迭代 = nextRow + ROW_BASE; if (num == null) { num = nextRow; } else { 迭代 = num + ROW_BASE; }
    • @ChadSellers:我无法解决您的问题中未包含的问题。我提供的解决方案解决了您提出的问题。如果您有其他详细信息,请更新您的问题。
    【解决方案2】:

    尝试遍历数据表并计算行数。将每个 id 字段设置为循环中的计数行号。

    【讨论】:

    • 每次删除一行时都应该这样做。
    • 我有一个迭代函数可以完成这个并为我添加行号。--------ROW_BASE=1; var 迭代 = nextRow + ROW_BASE;if (num == null) {num = nextRow;} else {iteration = num + ROW_BASE;}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2014-08-31
    • 1970-01-01
    相关资源
    最近更新 更多