如果价格5设置为javascript,则通过价格1

时间:2014-07-24 21:10:16

标签: javascript html

如果有售价(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产品中应用了这条线。

有人可以帮忙吗。

非常感谢。

2 个答案:

答案 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

http://jsfiddle.net/7q48R/

答案 1 :(得分:-1)

在我看来,这不是一个JavaScript工作。您应该直接在模板中添加<strike>标记。

如果您真的喜欢使用JavaScript,则必须基于ID而不是类来执行此操作。否则,您总是选择具有相同类别的所有元素,并且这总是所有价格。