Helpex - Trao đổi & giúp đỡ Đăng nhập
21

Tôi có một trang là một phần của bảng quản trị CRM phụ trợ. Trên trang đó, đầu ra HTML đến từ một số hàm PHP mà tôi không thể truy cập. Và HTML đó tự động thay đổi <>thành các ký tự được mã hóa HTML.

Vì vậy, có một div chứa các thẻ html như <br />vậy được chuyển đổi thành&lt;b /&gt;

Vì vậy, tôi cần thay đổi nó trở lại các ký tự HTML chỉ sử dụng jQuery:

&lt;để <
&gt;đến>

Có tập lệnh jQuery nào tôi có thể sử dụng để thay thế các ký tự đặc biệt đó bằng các ký hiệu tương ứng không? Điều này có nghĩa là các thẻ HTML của tôi sẽ thực sự hoạt động và HTML sẽ được hiển thị chính xác trên màn hình?

Tôi đã cố gắng removewith()nhưng tôi không thể làm cho nó hoạt động.

ADDED: div mà tôi đang cố gắng sửa đổi là cái này

<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>
21 hữu ích 4 bình luận 92k xem chia sẻ
10 trả lời 10
12

Điều đơn giản nhất để làm sẽ là

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

working edit / jsfiddle bởi Jared Farrish

12 hữu ích 5 bình luận chia sẻ
23

Hãy thử cái này

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

để thay thế các ký tự này trên toàn cầu. Tôi đã thử cái này và hoạt động như một cái duyên :)

23 hữu ích 0 bình luận chia sẻ
16

Tôi có giải pháp khác với giải pháp thông thường và nó sẽ được áp dụng để giải mã / mã hóa html

Giải mã

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

Mã hóa

var normalString = "<Hello>";
var enocodedText = $("<p/>").text(normalString).html();
/* this encodedText will give you "&lt;Hello&gt;" this string
16 hữu ích 1 bình luận chia sẻ
5
$('#myDivId').text(function (i, text)
{
    return text.replace('&lt;', '<').replace('&gt;', '>');
});
5 hữu ích 0 bình luận chia sẻ
4

nếu sử dụng underscore.js tồn tại _.unescape(string)

4 hữu ích 0 bình luận chia sẻ
3

Sử dụng $ this.html ('...'); thay vào đó $ this.text ('...');

3 hữu ích 0 bình luận chia sẻ
3

Thử cái này:-

var wrapper=$(".contentwrap").html();
  wrapper=wrapper.replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');
 $(".contentwrap").html(wrapper);
3 hữu ích 0 bình luận chia sẻ
2

Tất cả những điều trên không thực sự hiệu quả với tôi bởi vì những gì tôi cần là thứ gì đó để thay thế tất cả &lt;thành <và &gt;to>, không chỉ cái đầu tiên. Những gì tôi đã làm là:

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

Chỉ nghĩ ra khỏi hộp ở đây. Nó đã làm việc cho tôi, tôi hy vọng nó cũng làm cho bạn.

2 hữu ích 0 bình luận chia sẻ
0

Bạn có thể làm điều đó đơn giản với 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;
?>
0 hữu ích 1 bình luận chia sẻ
0

Tôi cần phải bước để tìm H1 sau đó phân tích cú pháp phần tử tiếp theo, bởi vì tôi không thể sử dụng một ID cụ thể như bạn đã làm. Mẹo tốt!

$('#sscContent').find("h1").next().each(function(){
    var $this = $(this);
    var t = $this.text();
    $this.html(t.replace('&lt;','<').replace('&gt;', '>'));
});
0 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ jquery html-encode , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading