Javascript:帮助替换 '
'与'
'一个innerHTML!

发布于 2024-10-04 05:40:02 字数 1256 浏览 1 评论 0原文

我有一个可编辑的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

情感失落者 2024-10-11 05:40:02

replace() 方法不会修改其调用的字符串,它返回 出现次数被替换的新字符串。

你可以这样做:

var divv = document.getElementById("divv");
divv.innerHTML = divv.innerHTML.replace("<div>", "<br>").replace("</div>", "");

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:

var divv = document.getElementById("divv");
divv.innerHTML = divv.innerHTML.replace("<div>", "<br>").replace("</div>", "");
勿忘初心 2024-10-11 05:40:02

通常浏览器会将innerHTML存储标签设置为

- 您可以尝试使用:

s = s.replace(/<div>/ig,"<br>");
s = s.replace(/<\/div>/ig,"");

Usually browsers will have innerHTML store tags as <DIV> and </DIV> - you could try using:

s = s.replace(/<div>/ig,"<br>");
s = s.replace(/<\/div>/ig,"");
凉栀 2024-10-11 05:40:02

首先,如果使用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

Firstly, if you use xhtml, you must use tag "< br / >".

Also draw attention on str.replace: it replaces only once.

js> var x = "hello";
js> x.replace("l", "L");
heLlo

Make your replace implementation:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文