Ответ 1
Простейшей задачей было бы
$('#test').each(function(){
var $this = $(this);
var t = $this.text();
$this.html(t.replace('<','<').replace('>', '>'));
});
У меня есть страница, которая является частью панели управления бэкэндом CRM. На этой странице вывод HTML исходит из некоторых функций PHP, к которым я не могу получить доступ. И этот HTML автоматически изменяет <
и >
на HTML-кодированные символы.
Итак, существует div, который содержит теги html, такие как <br />
, который преобразуется в <b />
Поэтому мне нужно изменить его обратно на символы HTML, используя только jQuery:
<
до <
>
до >
Есть ли jQuery script, который я могу использовать для замены этих специальных символов соответствующими символами? Это будет означать, что мои 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>
Простейшей задачей было бы
$('#test').each(function(){
var $this = $(this);
var t = $this.text();
$this.html(t.replace('<','<').replace('>', '>'));
});
Пожалуйста, попробуйте
.replace(/</g, '<').replace(/>/g, '>')
чтобы заменить эти символы глобально. Я пробовал это и работал как шарм:)
У меня есть другое решение, чем традиционное, и оно будет применяться для декодирования/кодирования html
Decode
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
$('#myDivId').text(function (i, text)
{
return text.replace('<', '<').replace('>', '>');
});
если используется выражение underscore.js _.unescape(string)
Попробуйте следующее: -
var wrapper=$(".contentwrap").html();
wrapper=wrapper.replace(/</g,'<').replace(/>/g,'>').replace(/&/g,'&');
$(".contentwrap").html(wrapper);
<?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;
?>
Использование $ This.html( '...'); вместо $ This.text( '...');