jquery解码html实体μ

时间:2017-01-07 01:22:23

标签: jquery html entity decode

我发现使用jquery和 html实体,html实体有一个问题,而不是解码,我猜。

我研究了很多,并尝试了一些jquery html实体解码选项,但不能为我的生活弄清楚这一点。任何意见都将非常感谢!

使用jquery库3.1.1 btw。

这个最初拆分并重新组织成新元素的脚本可以正常工作。它改变了这个:

   <ul class="productList">
    <li class="product">
    <p class="summary_description">
   [[25µg, ABP-NAB-BFGFAB]]
   </p>
   </li>
   </ul>

输出到:

<ul class="productList">
<li class="product">
<p class="summary_description">
<div class="prodosku">ABP-NAB-BFGFAB</div>
<div class="prodoweight">25&micro;g</div>
</p>
</li>
</ul>
  

并将其显示为25&amp;微; (当然没有空间)但正如你所看到的,html实体和微观;不会转换/解码为μ符号。

$( document ).ready(function() {
    if( $(".categoryPage").length > 0 ) {
        $("#product-listing-container .productList li").each( function() {
    var content = $(this).val(".summary_description").html();
            content = content.substr( content.indexOf("[["), content.indexOf("]]"));

            var weight = '<div class="prodoweight">';
            var sku = '<div class="prodosku">';
            weight += content.substr( content.indexOf("[[") + 2, content.indexOf(",") - 2);
            weight += "</div>";
            sku += content.substr( content.indexOf(",") + 1, content.indexOf("]]") - content.indexOf(",") - 1);
            sku += "</div>";

    $(this).find(".summary_description").html(sku+weight);
        });
    } });
  

有没有办法确保&amp; micro被解码为μ符号???

我正在考虑这样的事情,以确保包含.prodoweight的每个li都发生变化,但无法使其正常工作。

  if( $(".productList li").length > 0 ) {
  var decoded = $(".prodoweight").html().text();
  $(".prodoweight").html(decoded);
  }

或尝试使用unicode ???

   if( $(".productList li").length > 0 ) {
        var txt = $(".prodoweight").html();
        txt = txt.replace("\&micro\;", /\[\[([\w\s,\-\u00B5.&;])+\]\]/g);
        $(".prodoweight").html(txt);
    }

或者在初始脚本中有更好的方法可以做到这一点???非常感谢。

1 个答案:

答案 0 :(得分:0)

更改了行

var content = $(this).val(".summary_description").html();

到此:

var content = $(this).val(".summary_description").text();

它就像一个魅力。