Js点击文字实时修改内容
作者:秋了秋 发表时间:2016年06月07日
网页中可以输入和修改文字的方式就是输入框,包括input和textarea,除此之外就只有通过js来实现。在一个网页中需要展示用户数据的时候,我们又不想使用输入框,而是用普通文本展示。那么js上战场了~
5201314
比如用这么一段html代码:
<div id="edit_line"> <span class="edit_input">5201314</span><button class="edit">编辑</button> </div>
要实现点击“编辑”就把前面的文字修改并保存。jq代码为(注释如下):
$("#edit_line").on("click",".edit",function(){//点击编辑的操作(动态绑定,作用于动态生成的HTML) var origin=$(this).parent().find(".edit_input");//找到要修改文本的容器节点 var text=origin.text();//保存下初始文本 origin.remove();//移除这个节点 var input=$("<input>");//创建一个input input.attr("class","edit_input").attr("value",text);//给这个input指定class并把初始值赋给它的value $(this).parent().prepend(input);//插到父容器的前面 input.focus();//把光标移动到input上 $(this).removeClass("edit").addClass("confirm").text("确定");//修改class和button的文字 }).on("click",".confirm",function(){//点击确定的操作 var change=$(this).parent().find(".edit_input");//找到input的节点 var value=change.val();//获取修改后的值 //do some post action here!(发送一个请求保存到数据库) change.remove();//移除这个input var span=$("<span/>");//创建一个span标签 span.attr("class","edit_input").text(value);//修改它的class和文本内容为用户输入的内容 $(this).parent().prepend(span);//插到父容器前面 $(this).removeClass("confirm").addClass("edit").text("编辑");//修改class和button的文字 }).on("keyup",".edit_input",function(e){//输入后按回车键保存功能 var e=e||window.event; if(e.keyCode==13){ $("#edit_line").find(".confirm").click();//调用上面的“确定”点击事件 } }).on("click","span.edit_input",function(){//直接点击文字也可以编辑 $("#edit_line").find(".edit").click();//调用上面的“编辑”点击事件 })
6
文章作者: “秋了秋”个人博客,本站鼓励原创。
转载请注明本文地址:http://netblog.cn/blog/445.html