jquery里怎么用clone给表格增加一行

jquery里怎么用clone给表格增加一行,第1张

你想要的效果是,表格的每一行后面有个“添加”按钮,点击按钮后,会自动复制当前行,添加到当前行的后面,这个效果吧?

假设,我们有这样一个table表格:

<table id="table">

    <tr>

        <td>内容1</td>

        <td>

            <button class="addtr">添加</button>

            <button class="deltr">删除</button>

        </td>

    <tr>

</table>

用jquery来实现“添加”和“删除”的功能:

下面这个是添加:

$("#table").on("click","button.addtr",function(){

    var $tr=$(this).parents("tr")

    $tr.append($tr.clone())

})

下面是删除:

$("#table").on("click","button.deltr",function(){

    var $tr=$(this).parents("tr")

    $tr.remove()

})

可以参考这里,有完整的在线实例演示:

query实例:表格里点击按钮后添加一行,新添加的行附带删除按钮

table表任意复制一行的关键是复制哪行,插入到什么位置,如何插入。

第 一个问题复制哪行,通常是点击某一行以确定复制的当前行,核心代码如下:

var e = window.event

if (e.target) targ = e.target

else if (e.srcElement) targ = e.srcElement

if (targ.nodeType == 3)

targ = targ.parentNode

if(targ.tagName=="TD")

第 二个问题插入位置,通常是点击行的下面

pos = targ.parentNode.rowIndex+1

也有可能在表头首行pos =0

再就是表尾"beforeEnd"

第三个问题如何插入,先复制当前行:

var con = targ.parentNode.cloneNode(true)

再进行插入,可以是insertRow,也可以是insertAdjacentElement:

var x=document.getElementById('myTable').insertRow(pos);

document.getElementById('myTable').insertAdjacentElement("beforeEnd",con)

复制之后可对复制行里的内容进行修改调整:

var y=x.insertCell(0).innerHTML=document.getElementById("cell1").value

也可进行删除指定行:

document.getElementById('myTable').removeChild(Obj.parentNode.rows[i])


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11556807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存