JavaScript实现节点名称编辑:双击文本替换为输入框
作者:白露时间:2026-10-28 17:49:57浏览:455
本文介绍如何使用JavaScript实现网页节点的双击编辑功能。通过监听ondblclick事件,隐藏原始文本节点并动态创建input元素,复制其样式与内容。在input失去焦点时,将新值写回原节点并移除输入框,实现类似富文本的轻量级编辑体验。
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;
}代码逻辑较为简单,此处不再赘述。开发者可根据实际需求将此功能集成到项目中,并自由扩展相关交互效果。
作者最新文章
sigma.js 怎么实现节点点击、拖拽与悬停提示交互
2026-11-05 15:03:27
Matter.js 与 PixiJS/Three.js 集成:分离物理计算与渲染
2026-11-05 13:43:48
主流JS弹幕库选型指南:Danmaku.js等库的功能与体积对比
2026-11-05 09:28:19
JavaScript点击事件监听与交互效果实例
2026-11-05 09:10:19
自定义JS颜色选择器UI样式与交互细节
2026-11-05 09:09:06
