javascript - 使用 Javascript 解码 HTML

标签 javascript jquery

<分区>

我试图从链接的数据属性中提取数据并解码其中的 HTML,但它不起作用。

这是我的代码的 JSFiddle: http://jsfiddle.net/Kd25m/1/

HTML:

<a id="main" class="margin-right-5 no-underline" href="#" data-qid="0" data-name="Post\u0026#39;\u0026#39; \u0026#39;!@#$%^\u0026amp;*()_+{}|:\u0026quot;\u0026lt;\u0026gt;?,./;\u0026#39;[]\\212\u0026quot;\u0026quot;3\u0026quot;4567890-=\u0026#39;" data-caption="" data-description="Animals are generally considered to have evolved from a flagellated eukaryote.[39] \u0026#39;!@#$%^\u0026amp;*()_+{}|:\u0026quot;\u0026lt;\u0026gt;?,./;\u0026#39;[]\\21234567890-=\u0026#39;Their closest known living relatives are the ch...">
Alert Decoded HTML</a>

JS:

$('#main').click(function(e){
    e.preventDefault()
    //alert("AA");
    var name = $('#main').data('name');
    alert(name);
    var decoded = $("<div/>").html(name).text();
    alert(decoded);
});

如果将字符串放入名称 var 中,则可以使用它,但如果我从数据属性中提取值,它就不再起作用了。

最佳答案

首先尝试对 unicode 字符进行转义:

function convert(str){

    return str.replace(/\\u([a-f0-9]{4})/gi, function (found, code) {
      return String.fromCharCode(parseInt(code, 16));
    });

}

接下来尝试制作 div 和 html 技巧:

var decoded = $("<div/>").html(convert(name)).text();

关于javascript - 使用 Javascript 解码 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21122122/

相关文章:

javascript - 使用 dropzone.js 将文件直接上传到 Azure Blob 存储(使用 SAS)

javascript - Margin-top 和 Margin-bottom 不适用于内部元素

javascript - css/js-只显示部分元素分页

javascript - jquery禁用表单元素

javascript - 如何使用 Javascript/jQuery 进行初始大写

javascript - 如何从移动网页打开 Whatsapp 聊天?

jquery - Fancybox 2 默认覆盖

javascript - jQuery,data()不更新数据属性

javascript - 导轨 : carrusel dies after come back to home

javascript - 如何缩放背景图像并使其与浏览器大小一起使用