[英]Javascript: help with replacing '<div>' with '<br>' of an innerHTML!
我有一个用户可编辑的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>", "");
通常,浏览器将具有innerHTML存储标签,如<DIV>
和</DIV>
-您可以尝试使用:
s = s.replace(/<div>/ig,"<br>");
s = s.replace(/<\/div>/ig,"");
首先,如果使用xhtml,则必须使用标签“ <br />”。
还要注意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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.