Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改按键javascript上的内部html_Javascript_Replace_Contenteditable_Innerhtml_Onkeypress - Fatal编程技术网

更改按键javascript上的内部html

更改按键javascript上的内部html,javascript,replace,contenteditable,innerhtml,onkeypress,Javascript,Replace,Contenteditable,Innerhtml,Onkeypress,我有以下代码 函数kpress(){ document.getElementById(“可编辑”).innerHTML=document.getElementById(“可编辑”).innerHTML.replace(“这个”、“那个”); } innerHTML获取或设置元素的HTML。当像这样使用innerHTML时:innerHTML.replace(“this”,“test”)实际上是以字符串的形式获取HTML,并对字符串应用replace方法。在Element.innerHTML=的

我有以下代码

函数kpress(){
document.getElementById(“可编辑”).innerHTML=document.getElementById(“可编辑”).innerHTML.replace(“这个”、“那个”);
}

innerHTML获取或设置元素的HTML。当像这样使用
innerHTML
时:
innerHTML.replace(“this”,“test”)
实际上是以字符串的形式获取HTML,并对字符串应用replace方法。在
Element.innerHTML=
的上下文中使用
innerHTML
时,您正在设置HTML的值

下面是一种使用JavaScript实现所需内容的干净方法:

document.getElementById(“可编辑”).onkeypress=函数(){
this.innerHTML=this.innerHTML.replace(“this”、“that”);
}
#可编辑{
宽度:100px;
高度:100px;
边框:1px#ccc实心;
}

jQuery使这种方法更简单,不幸的是,我不知道有什么方法可以替换字符串中的文本而不必再次设置该字符串。我认为您所能做的最多就是使代码更具可读性,并且只执行一次元素查找:

var editableElement = document.getElementById("editable");
editableElement.innerHTML = editableElement.innerHTML.replace("this", "that");

当使用纯javascript时,您必须为innerHTML分配一些内容才能对其进行更改

本机替换方法返回一个字符串,,但不修改DOM。

您可以将其缩短一点,但无法避免步骤1)获取元素2)更改其值

var ed = document.getElementByID("editable");
ed.innerHTML = ed.innerHTML.replace("this","that");

您是否必须使用本机JavaScript,因为jQuery有一个.text()函数,可以很容易地满足您的要求。我要实现的原始替换可能是@SergeyDenisov的重复项是这样的“innerHTML.replace(RegularExpression,$1”);”其中“RegularExpression”是一个与数字匹配的正则表达式,“$1”是与正则表达式匹配的子字符串Hey EMM,当你的问题解决后,别忘了选择答案!如果问题尚未解决,请更新您的问题!美好的您可以使它更干净,因为
this.innerHTML=this.innerHTML.replace(“this”、“that”)并保存额外的DOM爬网。