双击文本实现可编辑

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="author" content="wuleying" />
<title>双击文本实现可编辑</title>
<style>
input.a {border:1px solid #fff;background:#fff;}
input.b {border:1px solid #369;background:#fff;}
</style>
</head>
<body>
<input class="a" id="test" readonly value="这里是Ajax中国" type="text" />
<input type="submit" value="修改" style="display:none;" id="submit" />
<script type="text/javascript">
var test = document.getElementById("test");
var mysubmit = document.getElementById("submit");
test.ondblclick = function(){
this.readOnly = false;
this.className = "b";
mysubmit.style.display = "";
}
mysubmit.onclick = function(){
test.readOnly = true;
test.className = "a";
this.style.display = "none";
}
</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 实现这个功能可以通过以下步骤: 1. 创建一个div元素,并在其中填充文本内容。 2. 添加一个双击事件监听器,在双击时触发编辑模式。 3. 在编辑模式中,将div元素替换为一个可编辑文本框。 4. 当用户完成编辑并按下回车键或离开文本框时,将文本框的内容替换回div元素。 以下是一个简单的实现示例: HTML代码: ```html <div id="editable" ondblclick="startEdit()"></div> ``` JavaScript代码: ```javascript function startEdit() { // 获取div元素 var div = document.getElementById("editable"); // 获取div元素的内容 var text = div.innerText; // 创建一个文本框元素 var input = document.createElement("input"); // 设置文本框的初始值为div元素的内容 input.value = text; // 将文本框元素替换为div元素 div.parentNode.replaceChild(input, div); // 当文本框失去焦点或按下回车键时,结束编辑模式 input.onblur = endEdit; input.onkeydown = function(e) { if (e.keyCode == 13) { endEdit(); } }; // 将文本框设置为焦点状态,以便用户可以开始编辑 input.focus(); } function endEdit() { // 获取文本框元素 var input = document.querySelector("input"); // 获取文本框的内容 var text = input.value; // 创建一个div元素 var div = document.createElement("div"); // 设置div元素的内容为文本框的内容 div.innerText = text; // 将文本框元素替换为div元素 input.parentNode.replaceChild(div, input); } ``` 在这个示例中,我们首先创建了一个双击编辑的div元素。当用户双击该元素时,会触发startEdit()函数,该函数会将div元素替换为一个可编辑文本框。当用户完成编辑并按下回车键或离开文本框时,会触发endEdit()函数,该函数会将文本框替换回div元素。 ### 回答2: JS双击div编辑文本内容的实现可以通过以下步骤来完成。 首先,我们需要给目标div绑定一个双击事件监听器。可以使用addEventListener方法来实现这一点,通过传递'click'事件类型作为第一个参数以及一个回调函数作为第二个参数来实现。 回调函数应该包含以下代码: ``` div.addEventListener('dblclick', function() { // 在此处编写编辑文本内容的代码 }); ``` 在回调函数中,我们可以创建一个新的input元素,并将其添加到div中,以便用户可以输入新的文本内容。我们可以使用createElement方法创建新的input元素,并使用appendChild方法将其添加到div中。 接下来,我们可以使用focus方法将焦点设置在新创建的input元素上,以便用户可以直接开始输入。 然后,我们需要监听input元素上的回车键事件,以便在用户完成输入后保存文本内容。我们可以使用addEventListener方法,传递'keydown'事件类型作为第一个参数以及一个回调函数作为第二个参数来实现。 回调函数应该检查按下的键是否是回车键(keyCode为13),如果是则保存输入的文本内容。可以使用value属性获取input元素的值,并将其保存在一个变量中,然后使用innerHTML属性将文本内容设置回原来的div中。 最后,我们可以使用removeChild方法将input元素从div中移除,以便将界面恢复到初始状态。 总结起来,实现JS双击div编辑文本内容的步骤如下: 1. 给div绑定一个双击事件监听器; 2. 在双击事件的回调函数中创建一个新的input元素,并将其添加到div中; 3. 在input元素上监听回车键事件,将文本内容保存并设置回div中; 4. 将input元素从div中移除。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值