在线等 jquery 如何把table中的一行变成可编辑的

在线等 jquery 如何把table中的一行变成可编辑的,第1张

思路:点击按钮后,如果单元格内容不是可编辑状态,就将单元格替换为文本框,内容为当前单元格内容;再次点击即单元格内容已经是可编辑的文本框,就将单元格内容显示为文本框的值。详细说明及实例演示如下:

1、HTML结构:给出一个示例表格

<table>

    <tr><td>1</td><td>2</td><td><input type="button" value="编辑"></td></tr>

    <tr><td>2</td><td>5</td><td><input type="button" value="编辑"></td></tr>

    <tr><td>3</td><td>8</td><td><input type="button" value="编辑"></td></tr>

    <tr><td>4</td><td>2</td><td><input type="button" value="编辑"></td></tr>

</table>

2、jquery代码:

$(function(){

    $("input:button").click(function() {

        str = $(this).val()=="编辑"?"确定":"编辑"

        $(this).val(str)  // 按钮被点击后,在“编辑”和“确定”之间切换

        $(this).parent().siblings("td").each(function() {  // 获取当前行的其他单元格

            obj_text = $(this).find("input:text")   // 判断单元格下是否有文本框

            if(!obj_text.length)   // 如果没有文本框,则添加文本框使之可以编辑

                $(this).html("<input type='text' value='"+$(this).text()+"'>")

            else   // 如果已经存在文本框,则将其显示为文本框修改的值

                $(this).html(obj_text.val())

})

})

})

3、效果演示:

比如设置table的id为tab

var trHTML = "<tr><td>...</td></tr>"

$("#tab").append(trHTML)//在table最后面添加一行

$("#tab tr:eq(2)").after(trHTML)// 在table的第3行后面添加一行

这样就可以进行动态的添加行了,至于你是通过什么事件来动态添加那就看你自己的意思了,通过button或者div之类的点击事件添加,只要把上面的两行代码放进去就ok,注意,要把var trHTML那行代码放进添加事件里面,不然不管点击多少下,都只能添加一行

$(function() {

$(":button").click(function() {

var tr = "<tr><td>new</td></tr>"

//$("table").append(tr)

$("table tr:eq(2)").after(tr)

})

})

这是我测试用的代码,你可以运行看看


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

原文地址:https://54852.com/bake/11630054.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存