不用ajax实现点击文字即可编辑的方法


Posted in Javascript onDecember 16, 2007

刚接触creatElement ,appendChild 等东东!呵呵!

写了这个东西,可能在高手看来,非常的稚嫩!不过完全自己写的!

还没有完善,请大侠指导!!

看代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
 <HEAD> 
 <TITLE> New Document </TITLE> 
 <style> 
 .test{border:1px solid #ccc;background-color:#eee;width:200px;height:60px;} 
 </style> 
 <script language="javascript"> 
 <!-- 
 function isIE(){ //ie? 
  if (window.navigator.userAgent.indexOf("MSIE")>=1) return true; 
  else return false; 
} 
if(!isIE()){ //firefox innerText define 
  HTMLElement.prototype.__defineGetter__("innerText", 
    function(){ 
      return this.textContent; 
    } 
  ); 
  HTMLElement.prototype.__defineSetter__("innerText", 
    function(sText){ 
      this.textContent=sText; 
    } 
  ); 
}function $(e){ 
  return document.getElementById(e); 
 } 
 var arr=new Array(); 
 function check(e){ 
 var v=0; 
  for(i=0;i<arr.length;i++) 
  {if(arr[i]==e) v=1; 
  else v=0;} 
  if(v) return true; 
  else return false; 
 } 
 function edit(e){ 
  var x=$(e); 
  var str=x.innerText; 
  if (check(e)) 
  { 
    //alert("已经存在在数组里!"); 
    //alert(str); 
    var b=$(e+"fa"); 
    str=$(e+"faz").value; 
    b.removeChild($(e+"faz")); 
    x.innerText=str; 
  }else{ 
    //alert("没有存在在数组里!"); 
    a1=document.createElement("div"); 
    a1.id=e+"fa"; 
    a=document.createElement("INPUT"); 
    a.name=e; 
    a.id=e+"faz"; 
    a.value=str; 
    x.innerHTML=""; 
    x.appendChild(a1); 
    a1.appendChild(a); 
    if(arr.length==0) arr[0]=e; 
    else arr[arr.length]=e; 
    //alert(a.name); 
  } 
 } 
 --> 
 </script> 
 </HEAD> 
 <BODY> 
 <div class="test" id="test" onclick="edit('test')">可编辑的内容</div> 
 <div class="test" id="test1" onclick="edit('test1')">可编辑的内容</div> 
 </BODY> 
</HTML>

最后解决浏览器问题的代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
 <HEAD> 
 <TITLE> New Document </TITLE> 
 <style> 
 body{font-size:14px;} 
 input{border:none;font-size:14px;} 
 .show{border:1px solid #ccc;background-color:#eee;width:150px;height:20px;} 
 .hide{border:1px solid #ccc;background-color:#eee;width:150px;height:20px;display:none;} 
 </style> 
 <script language="javascript"> 
 <!-- 
 function $(e){ 
  return document.getElementById(e);//封装获取函数 
 } 
 function edit(e){ 
    //parseInt 
    $(e).style.display="none"; 
    $(e+"fm").style.display="block"; 
    $(e+"fm").childNodes[0].focus(); //div的子元素自动获得焦点 
 } 
 function hide(e){ 
    //parseInt 
    $(e).style.display="none"; 
    $(e=e.replace("fm","")).style.display="block"; 
 } 
 --> 
 </script> 
 </HEAD> 
 <BODY>

 唉!!忙了一晚上,就这么解决了!!嘻嘻  呵呵 

郁闷!<br> 
<font color=red><b>在firefox下 由于DOM有很小的差异,含有input的div中除标签内的空格外</b></font><br> 
<font color=red><b>不能有空格因为我们用的是childNodes[0]!否则需要点两下!</b></font> 
 <div> 
 <div class="show" id="test" onclick="edit(this.id)">可编辑的内容一</div> 
 <div class="hide" id="testfm"><input type="text" name="nn" value="可编辑的内容一" onBlur="hide(this.parentNode.id)" /></div> 
 <div class="show" id="test1" onclick="edit(this.id)">可编辑的内容二</div> 
 <div class="hide" id="test1fm"><input type="text" name="nn" value="可编辑的内容二" onBlur="hide(this.parentNode.id)" /></div> 
 <div class="show" id="test2" onclick="edit(this.id)">可编辑的内容三</div> 
 <div class="hide" id="test2fm"> 
  <input type="text" name="nn" value="可编辑的内容三" onBlur="hide(this.parentNode.id)" > 
 </div> 
 <div class="show" id="test3" onclick="edit(this.id)">可编辑的内容四</div> 
 <div class="hide" id="test3fm"> 
  <input type="text" name="nn" value="可编辑的内容四" onBlur="hide(this.parentNode.id)" > 
 </div> 
 </div> 
 </BODY> 
</HTML>

以上所述是小编给大家介绍的不用ajax实现点击文字即可编辑的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
Feb 03 Javascript
Javascript 中的 call 和 apply使用介绍
Feb 22 Javascript
Javascript的各种节点操作实例演示代码
Jun 27 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
浅析JavaScript中的同名标识符优先级
Dec 06 Javascript
如何使用AngularJs打造权限管理系统【简易型】
May 09 Javascript
JavaScript中日期函数的相关操作知识
Aug 03 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
Sep 17 Javascript
jQuery实现弹出窗口弹出div层的实例代码
Jan 09 Javascript
jQuery源码分析之sizzle选择器详解
Feb 13 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
Feb 27 Javascript
如何获取vue单文件自身源码路径
May 06 Javascript
JS是否可以跨文件同时控制多个iframe页面的应用技巧
Dec 16 #Javascript
Javascript常用运算符(Operators)-javascript基础教程
Dec 14 #Javascript
javascript实现仿银行密码输入框效果的代码
Dec 13 #Javascript
CLASS_CONFUSION JS混淆 全源码
Dec 12 #Javascript
我见过最全的个人js加解密功能页面
Dec 12 #Javascript
文本链接逐个出现的js脚本
Dec 12 #Javascript
JavaScript创建命名空间(namespace)的最简实现
Dec 11 #Javascript
You might like
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
探讨PHP中OO之静态关键字以及类常量的详解
2013/06/07 PHP
PHP实现变色验证码实例
2014/01/06 PHP
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
2012/02/02 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
JavaScript 实现继承的几种方式
2021/02/19 Javascript
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
python之django母板页面的使用
2018/07/03 Python
基于Python解密仿射密码
2019/10/21 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
门卫岗位职责说明书
2014/08/18 职场文书
公司领导班子对照检查材料
2014/09/24 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
公司庆典欢迎词
2015/01/26 职场文书
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python