Javascript:帮助替换 ''与'
'一个innerHTML!
'一个innerHTML!
我有一个可编辑的 div,用户可以在其中写入。正如他所写,JavaScript 函数将 div html 添加到 textarea
中。当用户按下 SHIFT+Enter 时,div 会得到一个
。这很好。
但是当用户单独按下 Enter 时,div 会获得 标签。
因此,我尝试这样做,以便当按下 Enter 时,javascript 扫描 div 的 html 以消除 并将
更改为
。结果是,无论用户按下 SHIF+Enter 还是 Enter,div 的 html 最终都将仅使用
进行换行。<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 标签。
我不确定我做错了什么。请帮忙。
I have an editable div where the user writes. As he writes, a javascript function adds the div html to a textarea
. When the user presses SHIFT+Enter, the div gets a <br>
. This is good.
But when the user presses Enter alone, the div gets <div></div>
tags.
Therefore I try to make it so that when Enter is pressed, javascript scans the div's html to eliminate the </div>
and change the <div>
for <br>
. The result will be that regardless of whether the user presses SHIF+Enter or Enter, the div's html will end up using only <br>
for linebreaks.
<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>
My code doesn't work. When Enter is pressed, The textArea still shows div tags.
I'm not sure what I'm doing wrong. Please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
replace() 方法不会修改其调用的字符串,它返回 出现次数被替换的新字符串。
你可以这样做:
The replace() method does not modify the string it's called on, it returns a new string with the occurrences replaced.
You can do something like:
通常浏览器会将innerHTML存储标签设置为
和
- 您可以尝试使用:
Usually browsers will have innerHTML store tags as
<DIV>
and</DIV>
- you could try using:首先,如果使用xhtml,则必须使用标签“
”。
还要注意 str.replace:它只替换一次。
进行替换实施:
Firstly, if you use xhtml, you must use tag "< br / >".
Also draw attention on str.replace: it replaces only once.
Make your replace implementation: