我发现使用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µ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("\µ\;", /\[\[([\w\s,\-\u00B5.&;])+\]\]/g);
$(".prodoweight").html(txt);
}
或者在初始脚本中有更好的方法可以做到这一点???非常感谢。
答案 0 :(得分:0)
更改了行
var content = $(this).val(".summary_description").html();
到此:
var content = $(this).val(".summary_description").text();
它就像一个魅力。