Javascript:帮助用 innerHTML 的 '<br>' 替换 '<div>'!
Posted
技术标签:
【中文标题】Javascript:帮助用 innerHTML 的 \'<br>\' 替换 \'<div>\'!【英文标题】:Javascript: help with replacing '<div>' with '<br>' of an innerHTML!Javascript:帮助用 innerHTML 的 '<br>' 替换 '<div>'! 【发布时间】:2011-05-16 08:04:15 【问题描述】:我有一个用户在其中写入的可编辑 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 标签。 我不确定我做错了什么。请帮忙。
【问题讨论】:
【参考方案1】:replace() 方法不会修改它所调用的字符串,它返回一个替换出现的新字符串。
你可以这样做:
var divv = document.getElementById("divv");
divv.innerHTML = divv.innerHTML.replace("<div>", "<br>").replace("</div>", "");
【讨论】:
愚蠢的我。就是这样。谢谢。【参考方案2】:通常浏览器会将innerHTML 存储标记为<DIV>
和</DIV>
- 您可以尝试使用:
s = s.replace(/<div>/ig,"<br>");
s = s.replace(/<\/div>/ig,"");
【讨论】:
是的,我意识到替换返回了修改后的字符串,而不是仅仅改变它。但是感谢/ig。我没有意识到它会在第一场比赛中停止。【参考方案3】:首先,如果你使用xhtml,你必须使用标签“”。
还要注意 str.replace:它只替换一次。
js> var x = "hello";
js> x.replace("l", "L");
heLlo
进行替换实现:
js> function myreplace(str, pattern, change_to)
var s = str;
var s2 = s;
do
s2 = s;
s = s.replace(pattern, change_to);
while (s2 != s);
return s;
js> myreplace("helllllo", "l", "L");
heLLLLLo
【讨论】:
呃,我忘了正则表达式替换(***.com/questions/4287970/…)。最好使用它。 是的,我正在使用正则表达式。使用 /ig 它不会在第一场比赛中停止。无论如何,Tahnks。以上是关于Javascript:帮助用 innerHTML 的 '<br>' 替换 '<div>'!的主要内容,如果未能解决你的问题,请参考以下文章
将 javascript innerhtml 变量传递给 php
JavaScript中,可以用元素的innerHTML直接添加子元素吗?
javascript append 怎么代替innerHTML