JavaScript实现Div节点名称编辑功能详解
作者:小圆点时间:2026-10-28 17:49:25浏览:307
本文介绍如何使用JavaScript实现Div节点名称的双击编辑功能。通过监听双击事件,隐藏原始文本节点,动态创建并定位一个输入框以复制原有样式和内容。在输入框失去焦点时,将修改后的值写回原节点并移除输入框,从而完成节点名称的在线编辑。
JavaScript实现Div节点编辑功能
本文详细介绍了一种利用JavaScript实现Div节点名称编辑的具体方法,供开发者参考学习。
HTML节点结构定义
首先定义节点的HTML结构,代码如下:
具体HTML结构如下:
<div class="img_1" id="img_1" >
<input type="image" class="img_1" src="img/cump.png"></input>
<div class="noteText" id="noteTxt" type="text" ondblclick ="changeName(this.id);">123</div>
</div>JavaScript编辑逻辑实现
接下来编写JavaScript代码,用于处理noteTxt文本的双击编辑逻辑,核心函数如下:
JavaScript实现代码如下:
function changeName(noteTxtId){
var noteTxt = document.getElementById(noteTxtId);
noteTxt.style.display= "none";//.style.display= "block"
var div = noteTxt.parentNode;
if(!document.getElementById("noteInput")){
var text=document.createElement("input");
text.type="text";
text.id="noteInput";
text.style.width=getStyle(noteTxt,'width');
text.style.height=getStyle(noteTxt,'height');
text.style.marginTop=getStyle(noteTxt,'marginTop');
text.style.textAlign=getStyle(noteTxt,'textAlign');
text.value=noteTxt.innerHTML;
div.appendChild(text);
text.select();
text.onblur=function(){
noteTxt.style.display= "block";
noteTxt.innerHTML=text.value;
//text.style.display= "none";
div.removeChild(text);
}
}
}
//获得css文件中的样式
function getStyle(obj, attr)
{
if(obj.currentStyle)
{
return obj.currentStyle[attr]; //IE
}else{
return getComputedStyle(obj,false)[attr]; //FF
}
}
CSS样式配置
相关的CSS样式定义如下:
CSS代码如下:
.img_1 {
width: 80px;
height:70px;
position:absolute;
}
.noteText {
width:80px;
height:15px;
text-align:center;
margin-top:70px;
word-break:break-all;
}
希望上述内容能帮助读者掌握JavaScript中节点编辑的相关技巧。
作者最新文章
JS在setTimeout或Ajax回调中打开新标签页失败怎么处理
2026-11-05 15:50:12
JS直播协议选型:HLS、FLV与WebRTC的延迟与兼容性对比
2026-11-05 12:16:14
JS实现回到顶部:scrollTop赋值与浏览器兼容性处理
2026-11-04 23:43:35
JS使用classList动态添加、移除和切换CSS类名
2026-11-04 23:40:58
在 D3.js 中实现平滑过渡动画的技巧
2026-11-03 23:46:09
