0

好吧,这就是问题所在,我有一个“pre”标签,它使用来自 php 的 htmlentities() 编码的 html,该标签在网站上正确显示。

但是后来我想重新解码它以将其放入“textarea”中以实时使用。(例如stackoverflow)。然后这个修改的文本被编码(一次又一次)在带有新信息的“pre”标签中。

我试过了,但它似乎不起作用,因为 textarea 总是空的。这是代码:

<script>
var t0=document.getElementById("textarea0"),
x0=document.getElementById('pre0');

t0.value=x0.innerHTML().html().text(); //dec
t0.onkeyup=function(){
x0.innerHTML=t0>.value.text().html(); //enc};
</script>

我真的不明白这段代码是如何工作的,我知道这是错误的,因为 jquery 离我很远,我在编码之前看到了与此相关的其他类似问题,$('<div/>')但我认为这不是问题所在。(我再说一遍我对此视而不见)

(对不起,如果我犯了太多错误,我不是你可以猜到的英语作家,而且我没有使用翻译)

已编辑

第一部分现在可以工作了,Textarea 充满了 PRE 的内容,并被解码(使用<>和那种东西)以供实际工作。

但我不能把它还给 PRE,给他们带来新的变化。

这是现在的实际代码:

var t0=$("textarea#textareaName0"),
x0=$('pre#xmpName0');

t0.val(x0.text()); //dec
t0.keyup(function()
{
x0.innerHTML=t0.val(); //enc
});

有什么解决办法吗?(太感谢了)

最终解决方案

为了更新内容,工作的代码是:

t0.keyup(function()
{
x0.text(t0.val()); //enc
});

正如你所说,jquery 可以在不被解释的情况下在屏幕上打印 HTML,所以我不需要编码来避免它。太感谢了。

4

2 回答 2

1

您不能使用.text(). HTML 信息从它那里永远消失了。并.text()返回一个字符串,它没有名为 的方法.html()

充其量,您可以将展平的文本放回文本区域。

x0.innerHTML=t0.value;
于 2013-08-14T15:37:35.463 回答
1

我假设这类似于显示 HTML 源代码的 HTML 教程,然后您希望逐字编辑该源代码(不包含所有&gt;内容)

var src = $("pre").text()将为您提供变量中的来源src

$("textarea").val(src);应该把它放到文本区域(从这里)。

顺便说一句,$(src)给你一个带有 src 的分离 DOM,就像$('<div/>')给你一个包含一个 div 的 DOM。您似乎希望用户进行编辑,而不是 jQuery,因此您已经拥有了所需的一切,src并且不需要创建 DOM。如果你想从 jQuery 插入元素,你只会想要 DOM。

于 2013-08-14T15:42:49.297 回答