javascript - 使用 Prototype JS 在特定位置插入 tr

标签 javascript prototype

我有表格的以下部分:

<tbody class="tbody">
    <tr id="el1"></tr>
    <tr id="el2"></tr>
    <tr id="el3"></tr>
</tbody>
<tbody class="cloneTbody">
     <tr class="cloneTr"></tr>
</tbody>

我想隐藏一个<tr id="el2"></tr>来自<tbody class="tbody">并创建 <tr class="cloneTr"> 的克隆在他之上。默认情况下,类“cloneTbody”的 tdoby 是隐藏的。我正在使用 Prototype JS,并且创建了以下函数:

ObjectWork.hideTr = function(tr){
  var trClone = ObjectWork.container.down('table#table tbody.cloneTbody > tr.cloneTr').clone(true);
  // get tr next element
  var nextTr = tr.next(0);

   if (nextTr) {
      // i want to insert tr from clone in the same place where paramenter was
   }
   else {
     tr.up('tbody.tbody').insert({
        'bottom': trClone
     });
   }

   // hide tr
  tr.hide();

}

工作流程如下:如果要隐藏的请求 tr 是 tbody 的最后一个,则在 tbody 底部插入克隆 tr,否则尝试将克隆 tr 插入到请求的 tr 的相同位置。

谢谢!

最佳答案

您可以尝试在like之后插入...

tr.insert({
    'after': trClone
});

var ObjectWork = {
  container: $(document.body)
};
ObjectWork.hideTr = function(tr) {
  var trClone = ObjectWork.container.down('table#table tbody.cloneTbody > tr.cloneTr').clone(true);
  // get tr next element
  var nextTr = tr.next(0);

  if (nextTr) {
    tr.insert({
      'after': trClone
    });
  } else {
    tr.up('tbody.tbody').insert({
      'bottom': trClone
    });
  }

  // hide tr
  tr.hide();

}

ObjectWork.hideTr($('el1'))
.cloneTbody {
  display: none;
}
<script src="//cdnjs.cloudflare.com/ajax/libs/prototype/1.7.2/prototype.js"></script>
<table id="table">
  <tbody class="tbody">
    <tr id="el1"><td>1</td></tr>
    <tr id="el2"><td>2</td></tr>
    <tr id="el3"><td>3</td></tr>
  </tbody>
  <tbody class="cloneTbody">
    <tr class="cloneTr"><td>clone</td></tr>
  </tbody>
</table>

关于javascript - 使用 Prototype JS 在特定位置插入 tr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32762243/

相关文章:

javascript - 在HTML5 Canvas 椭圆中,startAngle是什么意思?

javascript - GraphQL 指定多种类型的数组

javascript - 为什么 css hover 与 javascript (fullpage.js) 交互,我该如何阻止它?

javascript - 使用原型(prototype)时,我需要将所有内容包装在 DOM 加载上吗?

javascript - 将监听器添加到对象原型(prototype)

javascript - 将方法继承到除基元之外的所有对象

javascript - 取消 promise

javascript - Google Analytics 如何限制域?

javascript - 如何覆盖原型(prototype)中的事件监听器?

javascript - 为什么原型(prototype)与 Object.create() 不相等