我想通过JUST字体标签的价格字符添加一个警示标签,类别为'specialprice'。这很难,因为代码设置的方式只是获得Price而不是之前的文本:
如果我可以用'specialprice'中的所有内容包装所有内容,请事先在font.colors_text或NOT font.colors_text中填写吗?
我有这个:
<font class="pricecolor colors_productprice specialprice">
<font class="text colors_text">
<b>Regular Price:<br></b>
</font>
$2,492<sup>.38</sup>
</font>
我想要这个:
<font class="pricecolor colors_productprice specialprice">
<font class="text colors_text">
<b>Regular Price:<br></b>
</font>
<strike>$2,492<sup>.38</sup></strike>
</font>
答案 0 :(得分:1)
在CSS中,为删除线添加一个类:
.strike {text-decoration: line-through;}
在你的jQuery中:
// get all the children of pricecolor, filter out the colors_text children,
// and wrap the span of price around them
$(".pricecolor").contents().each(function() {
if(!$(this).is(".colors_text")) {
$(this).wrap("<span class='price'>");
}
});
$(".price").addClass("strike");
如果你的价格选择器被删除,你可能想要使用一个ID,如果页面上有很多价格,则给每个价格一个唯一的ID。
答案 1 :(得分:0)
如果我不能改变HTML,我会使用jQuery.wrap。
试试这个(虽未测试)
首先获取应该被攻击的所有部分,然后在元素上使用.wrap($("<strike></strike>"))
。
var list = $("span.pricecolor").children();
list.not(list.first());
list.wrap($("<strike></strike>"));
答案 2 :(得分:0)
由于浏览器访问子元素的不一致,您可以改为使用Regex:
$(".specialprice").html($(".specialprice").html().replace(/<\/font>(.*<\/sup>)/i, "</font><strike>$1</strike>"));