如果有售价(P5),我试图通过旧价格(P1)实现罢工/线路
我认为我非常接近,或许在其他地方的某个地方,如果没有销售价格,那就是阻止它通过旧价格。
<script type="text/javascript">
if(jq('.spn_P5')){
jq('.spn_P1').wrap("<strike>");
}
else{
if(jq('.spn_P5:empty')){
jq('.spn_P1').unwrap("<strike>");
}
}
</script>
http://oi59.tinypic.com/359hl61.jpg
正如您所看到的,它仍然在第2和第3产品中应用了这条线。
有人可以帮忙吗。
非常感谢。
答案 0 :(得分:0)
您必须检查jq(".spn_P5:empty")
的返回长度,即使.spn_P5
范围内没有内容,此选择器也会返回一个对象。如果对象具有length > 0
,则表示找到了与:empty
选择器匹配的项目
假设你的HTML结构是这样的:
<div class="boot">
<span class='spn_P1'>100€</span>
<span class='spn_P2'></span>
<span class='spn_P3'></span>
<span class='spn_P4'></span>
<span class='spn_P5'>200€</span>
</div>
你可以这样做:
if($(this).find(".spn_P5:empty").length == 0){ //--- check length here
$(this).find('.spn_P1').css("text-decoration", "line-through");
}else{
$(this).find('.spn_P1').css("text-decoration", "")
}
<强> FIDDLE 强>
答案 1 :(得分:-1)
在我看来,这不是一个JavaScript工作。您应该直接在模板中添加<strike>
标记。
如果您真的喜欢使用JavaScript,则必须基于ID而不是类来执行此操作。否则,您总是选择具有相同类别的所有元素,并且这总是所有价格。