我有一个可编辑的 div,用户可以在其中写入。正如他所写,一个 javascript 函数将 div html 添加到 textarea
.当用户按下 SHIFT+Enter 时,div 得到一个 <br>
。 .这很好。
但是当用户单独按下 Enter 时,div 得到 <div></div>
标签。
因此我尝试这样做,以便在按下 Enter 时,javascript 扫描 div 的 html 以消除 </div>
并更改 <div>
对于 <br>
.结果将是,无论用户是按下 SHIF+Enter 还是 Enter,div 的 html 最终将只使用 <br>
。换行符。
<head>
<script type="text/javascript">
function doStuff(e){
if (window.event.keyCode == 13) {
var s=document.getElementById("divv").innerHTML;
s.replace("<div>", "<br>");
s.replace("</div>", "");
document.getElementById("divv").innerHTML=s;
}
document.getElementById("txtt").value = document.getElementById("divv").innerHTML;
}
</script>
</head>
<body>
<div contenteditable="true" id="divv" onKeyUp=doStuff(event);">
write here! Then press enter!
</div>
<textarea id="txtt" rows="30" cols="100">
</textarea>
</body>
我的代码不起作用。当按下 Enter 时,textArea 仍然显示 div 标签。
我不确定我做错了什么。请帮忙。
最佳答案
replace()方法不会修改调用它的字符串,它返回一个替换了出现的新字符串。
你可以这样做:
var divv = document.getElementById("divv");
divv.innerHTML = divv.innerHTML.replace("<div>", "<br>").replace("</div>", "");
关于Javascript:帮助用 innerHTML 的 '<div>' 替换 '<br>'!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4287970/