Javascript 使用格式输入文本效果:跳过HTML标记,但不要';移开

Javascript 使用格式输入文本效果:跳过HTML标记,但不要';移开,javascript,jquery,html,strip,Javascript,Jquery,Html,Strip,我试图提供一种简单的方法来获得键入文本的效果,但也可以允许HTML标记。我有一些代码可以工作,但是我看到标签被认为是文本的一部分 例如,如果文本是“任何人都很棒”,当它到达粗体部分时,我会看到以下内容: < <b <b> <b>a <b>aw <b>awe <b>awes <b>aweso <b>awesom <b>awesome <b>awesome< <b>

我试图提供一种简单的方法来获得键入文本的效果,但也可以允许HTML标记。我有一些代码可以工作,但是我看到标签被认为是文本的一部分

例如,如果文本是
“任何人都很棒”
,当它到达粗体部分时,我会看到以下内容:

<
<b
<b>
<b>a
<b>aw
<b>awe
<b>awes
<b>aweso
<b>awesom
<b>awesome
<b>awesome<
<b>awesome</
<b>awesome</b
<b>awesome</b>
<

有点像“让我来帮你吧!”是什么意思


可以下载具有键入效果的Javascript,但首先要检查许可条款。大部分工作似乎都在进行。

要从
e
中删除标记,请使用:

e = $(e).text();
这假设e首先包含HTML。如果它可能包含纯文本,请先将其包装在DIV中:

e = $('<div>'+e+'</div>').text();
e=$(''+e+'').text();

否则,jQuery将尝试将其解释为选择器。

他的问题不是关于键入效果,而是关于在假键入之前清除输入。这会去除标记;)不确定如何编码,但我认为您需要遍历
$(e)的DOM
,直到到达文本节点。然后迭代文本节点的字符,将它们添加到
elem.text()中
@yckart您的编辑是不必要的。该变量已在OP的原始函数中声明,这只是在同一范围内对该变量的重新分配,不需要另一个
var
声明。请确保您完全正确,但这是取消注释答案的先决条件;)您不能取消注释投票答案,unt它被编辑过吗
e = $('<div>'+e+'</div>').text();