2017-01-07 3 views
0

Я понял, работая с JQuery и HTML сущностей, существует проблема с HTML-объект не декодирования автоматически, я думаю.JQuery расшифровывает HTML сущность µ

Я исследовал многие и попробовал некоторые jquery html сущности расшифровать варианты там, но не может для жизни меня понять это. Любой вход был бы признателен!

с использованием jquery library 3.1.1 кстати.

Этот сценарий, который изначально раздвигается и реорганизуется в новые элементы, работает нормально. Он изменяет это:

<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 & микро; (без пробелов, конечно), но, как вы можете видеть, html-объект & micro; не преобразует/не декодирует символ µ.

$(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); 
     }); 
    } }); 

Есть ли способ, чтобы убедиться, что & микро получает декодируется в µ символ ???

Я думал о строках что-то вроде этого, чтобы убедиться, что каждый li, содержащий изменения .prodoweight, не может заставить его работать.

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); 
    } 

или, может быть, есть лучший способ сделать это в исходном скрипте ??? Спасибо много.

ответ

0

изменил линию

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

к этому:

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

и он работал как шарм.

Смежные вопросы