web-dev-qa-db-fra.com

Comment remplacer & lt; avec <et & gt; avec> using jquery

J'ai une page qui fait partie d'un panneau d'administration backend CRM. Sur cette page, la sortie HTML provient de certaines fonctions PHP auxquelles je n'ai pas accès. Et ce HTML change automatiquement < et > en caractères codés HTML.

Il existe donc un div qui contient des balises HTML telles que <br /> qui est convertie en &lt;b /&gt;

J'ai donc besoin de revenir aux caractères HTML en utilisant uniquement jQuery:

&lt; à <
&gt; à >

Existe-t-il un script jQuery que je peux utiliser pour remplacer ces caractères spéciaux par les symboles correspondants? Cela signifie-t-il que mes balises HTML fonctionneront réellement et que le code HTML s'affichera correctement à l'écran?

J'ai essayé removewith() mais je ne peux pas le faire fonctionner.

ADDED: Le div que je tente de modifier est-ce

<div style="font-size: 11px; width: 90%; font-family: Tahoma;" id="cotiz">&lt;strong&gt;Valuación&lt;/strong&gt; de InfoAuto: 35.500,00&lt;br /&gt; 
Cotización Seleccionada: Ninguna&lt;br /&gt; 
Allianz, Responsabilidad Civil: $205,25&lt;br /&gt; 
Allianz, Terceros Completos: $278,85 </div>
14
sebas

La chose la plus simple à faire serait

$('#test').each(function(){
    var $this = $(this);
    var t = $this.text();
    $this.html(t.replace('&lt','<').replace('&gt', '>'));
});

travail modifier/jsfiddle par Jared Farrish

10
genesis

S'il vous plaît essayez ceci 

.replace(/&lt;/g, '<').replace(/&gt;/g, '>') 

pour remplacer ces caractères globalement. J'ai essayé cela et fonctionne comme un charme :)

18
Kiran Banda

J'ai une solution différente de celle conventionnelle, et elle sera appliquée pour décoder/encoder html 

Décoder

var encodedString = "&lt;Hello&gt;";
var decodedText = $("<p/>").html(encodedString).text(); 
/* this decodedText will give you "<hello>" this string */

Encoder

var normalString = "<Hello>";
var enocodedText = $("<p/>").text(normalString).html();
/* this encodedText will give you "&lt;Hello&gt;" this string
12
AdiechaHK

si l'utilisation de underscore.js existe _.unescape(string)

4
Are.exe
$('#myDivId').text(function (i, text)
{
    return text.replace('&lt;', '<').replace('&gt;', '>');
});
4
Matt Ball

Essaye ça:- 

var wrapper=$(".contentwrap").html();
  wrapper=wrapper.replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');
 $(".contentwrap").html(wrapper);
3
Shashikant Pandit

Utilisez $ This.html ('...'); à la place $ this.text ('...');

2
Ballon

Vous pouvez le faire simplement avec php

<?php
$a =
 '<div style="font-size: 11px; width: 90%; font-family: Tahoma;" id="cotiz">&lt;strong&gt;Valuación&lt;/strong&gt; de InfoAuto: 35.500,00&lt;br /&gt; 
Cotización Seleccionada: Ninguna&lt;br /&gt; 
Allianz, Responsabilidad Civil: $205,25&lt;br /&gt; 
Allianz, Terceros Completos: $278,85 </div>';

$b = html_entity_decode($a);


echo $b;
?>
1
Pallav Nagar

Tout ce qui précède n'a pas vraiment fonctionné pour moi, car j'avais besoin de remplacer &lt; par <et &gt; par>, pas seulement le premier. Ce que j'ai fait était: 

.split('&lt;').join('<').split('&gt;').join('>');

Je pensais juste en dehors de la boîte ici… .. Cela a fonctionné pour moi, j'espère que ça le fera aussi pour vous.

0
Yassine Younes