如何使用 jquery 将 < 替换为 < 和 > 替换为 >
Posted
技术标签:
【中文标题】如何使用 jquery 将 < 替换为 < 和 > 替换为 >【英文标题】:How To Replace < with < and > with > using jquery 【发布时间】:2011-10-10 16:54:24 【问题描述】:我有一个属于后端 CRM 管理面板的页面。在该页面上,html 输出来自一些我无法访问的 php 函数。并且该 HTML 会自动将 &lt;
和 &gt;
更改为 HTML 编码字符。
所以有一个 div 包含像 <br />
这样的 html 标签被转换成 &lt;b /&gt;
所以我需要只使用 jQuery 将它改回 HTML 字符:
&lt;
到 &lt;
&gt;
到 &gt;
是否有一个 jQuery 脚本可以用来将这些特殊字符替换为相应的符号?这意味着我的 HTML 标记将真正起作用,并且 HTML 将在屏幕上正确显示?
我已经尝试过removewith()
,但我无法成功。
添加: 我试图修改的 div 是这个
<div style="font-size: 11px; width: 90%; font-family: Tahoma;" id="cotiz"><strong>Valuación</strong> de InfoAuto: 35.500,00<br />
Cotización Seleccionada: Ninguna<br />
Allianz, Responsabilidad Civil: $205,25<br />
Allianz, Terceros Completos: $278,85 </div>
【问题讨论】:
碰巧,你是用.text()
而不是.html()
插入数据吗?
How do I find and replace HTML entities with jQuery? 的可能重复项
@genesis - 请注意上述评论中的大小写。 ;)
这是一些邪恶的东西
【参考方案1】:
我需要一步一步找到一个 H1 然后解析下一个元素,因为我无法像你那样使用特定的 ID。好建议!
$('#sscContent').find("h1").next().each(function()
var $this = $(this);
var t = $this.text();
$this.html(t.replace('<','<').replace('>', '>'));
);
【讨论】:
【参考方案2】:以上所有内容都对我不起作用,因为我需要的是将所有 &lt;
替换为 > 替换为 > ,而不仅仅是第一个。
我所做的是:
.split('<').join('<').split('>').join('>');
只是在这里开箱即用。 它对我有用,我希望它也对你有用。
【讨论】:
【参考方案3】:试试这个:-
var wrapper=$(".contentwrap").html();
wrapper=wrapper.replace(/</g,'<').replace(/>/g,'>').replace(/&/g,'&');
$(".contentwrap").html(wrapper);
【讨论】:
【参考方案4】:使用 $this.html('...'); 反而 $this.text('...');
【讨论】:
【参考方案5】:你可以用php简单地做到这一点
<?php
$a =
'<div style="font-size: 11px; width: 90%; font-family: Tahoma;" id="cotiz"><strong>Valuación</strong> de InfoAuto: 35.500,00<br />
Cotización Seleccionada: Ninguna<br />
Allianz, Responsabilidad Civil: $205,25<br />
Allianz, Terceros Completos: $278,85 </div>';
$b = html_entity_decode($a);
echo $b;
?>
【讨论】:
该问题专门说使用jquery!请先把问题通读一遍!【参考方案6】:请试试这个
.replace(/</g, '<').replace(/>/g, '>')
全局替换这些字符。我试过了,效果很好:)
【讨论】:
【参考方案7】:如果使用underscore.js存在_.unescape(string)
【讨论】:
【参考方案8】:我有与常规不同的解决方案,它将应用于 html 的解码/编码
解码
var encodedString = "<Hello>";
var decodedText = $("<p/>").html(encodedString).text();
/* this decodedText will give you "<hello>" this string */
编码
var normalString = "<Hello>";
var enocodedText = $("<p/>").text(normalString).html();
/* this encodedText will give you "<Hello>" this string
【讨论】:
你有一个普通的 javascript 替代品吗?【参考方案9】:最简单的做法是
$('#test').each(function()
var $this = $(this);
var t = $this.text();
$this.html(t.replace('<','<').replace('>', '>'));
);
working edit/jsfiddle by Jared Farrish
【讨论】:
不完全。 jsfiddle.net/XS5kY 注意,出于演示目的,我已经修复了上述问题。 我看到它在那个 jsfiddle 演示上工作,但它在我的设置上不起作用......顺便说一句,div 引用是正确的。可能是什么问题? @sebas:我不知道。在您的问题中向我们展示您的整个#test 元素 刚刚发布了您的 jquery 由于某种原因无法在我的设置中修改的 div。 抱歉再次编辑了问题,请检查 div,因为它与我在 html 代码中看到的完全一样,其中包含我需要转换为 的特殊字符【参考方案10】:$('#myDivId').text(function (i, text)
return text.replace('<', '<').replace('>', '>');
);
【讨论】:
以上是关于如何使用 jquery 将 < 替换为 < 和 > 替换为 >的主要内容,如果未能解决你的问题,请参考以下文章
使用 jQuery 将完整的 html 锚点替换为另一个 html 锚点
如何使用 JQuery 在不移动页面的情况下将 div 的整个视图替换为另一个 div