不用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 相关文章推荐
有效的捕获JavaScript焦点的方法小结
Oct 08 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
May 09 Javascript
jquery实现全选、反选、获得所有选中的checkbox
Sep 13 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
Jul 27 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
Nov 21 Javascript
jQuery读取XML文件的方法示例
Feb 03 Javascript
JS交互点击WKWebView中的图片实现预览效果
Jan 05 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
Jan 21 Javascript
如何正确理解vue中的key详解
Nov 02 Javascript
vue组件传值的实现方式小结【三种方式】
Feb 05 Javascript
jQuery实现简单日历效果
Jul 05 jQuery
vue深度监听(监听对象和数组的改变)与立即执行监听实例
Sep 04 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
php生成WAP页面
2006/10/09 PHP
收藏的一个php小偷的核心程序
2007/04/09 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
2017/06/13 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
vue实现登录拦截
2020/06/29 Javascript
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
python requests 测试代理ip是否生效
2018/07/25 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
这段代码难道不该打印出56吗
2013/02/27 面试题
专业实习自我鉴定
2013/10/29 职场文书
大学生职业生涯规划书模板
2014/01/18 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
《学会待客》教学反思
2014/02/22 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
最新离婚协议书范本
2014/08/19 职场文书
工作检讨书怎么写
2014/10/10 职场文书
python 详解turtle画爱心代码
2022/02/15 Python
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers