Javascript双击文本转换为文本框

标签 javascript

双击编辑文本的javascipt代码是什么。这个过程是我有一个文本,如果我双击它,会出现一个文本框,如果我按 Enter 键,单词将根据您输入的内容而更改。

示例

This is sample text. $nbsp;$nbsp; --> if I double click it a textbox will appear.
<input type="text" value="This is sample text." name="" />

很抱歉问这个问题。我是 javascript 新手

最佳答案

这是一个great example .

我将粘贴该示例中的脚本,以便在链接消失时保留它,但您应该点击该链接 - 这篇文章很好地逐行分解了脚本并进行了解释它能做什么。学习 JavaScript 的绝佳机会。

var editing  = false;

if (document.getElementById && document.createElement) {
    var butt = document.createElement('BUTTON');
    var buttext = document.createTextNode('Ready!');
    butt.appendChild(buttext);
    butt.onclick = saveEdit;
}

function catchIt(e) {
    if (editing) return;
    if (!document.getElementById || !document.createElement) return;
    if (!e) var obj = window.event.srcElement;
    else var obj = e.target;
    while (obj.nodeType != 1) {
        obj = obj.parentNode;
    }
    if (obj.tagName == 'TEXTAREA' || obj.tagName == 'A') return;
    while (obj.nodeName != 'P' && obj.nodeName != 'HTML') {
        obj = obj.parentNode;
    }
    if (obj.nodeName == 'HTML') return;
    var x = obj.innerHTML;
    var y = document.createElement('TEXTAREA');
    var z = obj.parentNode;
    z.insertBefore(y,obj);
    z.insertBefore(butt,obj);
    z.removeChild(obj);
    y.value = x;
    y.focus();
    editing = true;
}

function saveEdit() {
    var area = document.getElementsByTagName('TEXTAREA')[0];
    var y = document.createElement('P');
    var z = area.parentNode;
    y.innerHTML = area.value;
    z.insertBefore(y,area);
    z.removeChild(area);
    z.removeChild(document.getElementsByTagName('button')[0]);
    editing = false;
}

document.onclick = catchIt;

关于Javascript双击文本转换为文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2722172/

相关文章:

javascript - 获取所有 ALT 标签

php - 解决多个 jQuery 文件之间的冲突

javascript - javascript中函数参数的复杂使用

javascript - 有没有一种简单的方法可以循环遍历一个对象,该对象的值是对象数组,以从这些对象的值生成列表

javascript - Node +回调函数传参

javascript - JavaScript 可以捕获语法错误吗?

javascript - 在 JavaScript 中计算价格

javascript - 安装本地 Node 类型时出现重复标识符

javascript - Protractor - 我可以使用 $$(elementLocator).first() 来表示更多元素,例如第二个、第三个等......?

javascript - 通过原型(prototype)继承扩展ES2015