2010-04-29 95 views
2

我对jquery根本不了解,所以忍受我的无知,但我确信我可以用jquery完成此任务。jquery检查元素是否存在,然后将类添加到不同的元素

我需要jquery来检查一个元素是否存在,如果是这样,请将一个类添加到另一个元素。例如,

如果类“最低价格链接”存在,然后添加一个类到“正常价格”,或者我真正想要做的是做正常价格删除线。

下面的代码:

<div class="price-box"> 
    <span class="regular-price" id="product-price-2"> 
     <span class="price">$240.00</span> 
    </span>    

    <a href="http://stemulation.com/order/sfs30.html" class="minimal-price-link"> 
     <span class="label">Your Price:</span> 
     <span class="price" id="product-minimal-price-2">$110.00</span> 
    </a> 
</div> 

回答

1
if($('.minimal-price-link').length != 0) 
{ 
    $('.regular-price').addClass('strikethrough'); 
} 

如果任一元素的最小价格链路级,删除线类添加到与常规价位的所有元素。这可能不是你想要的,但它应该给你这个想法。

+0

我瘦你忘了'最小,价格link' – 2010-04-29 04:25:59

+0

后'该脚本将添加一个‘删除线’类如果只有一个“最低价格链接”存在,所有“正常价格”跨度。 – Mottie 2010-04-29 06:16:56

+0

真棒家伙!感谢您的帮助......它完美地工作。我非常喜欢Reigel的演示。我将不得不一劳永逸地学习这个jquery的东西。保持良好的工作。 – Buddy 2010-05-01 22:31:24

1
if ($("a.minimal-price-link").length > 0) 
{ 
    $("span.regular-price").addClass("yourclass"); 
} 

<style type="text/css"> 
    .yourclass { text-decoration: line-through; } 
</style> 
+1

如果存在“最低价格链接”类别,我认为这段代码会将“yourclass”添加到所有正常价格范围。 – Mottie 2010-04-29 06:14:02

3

这应该这样做...

$(function() { 

    $("a.minimal-price-link").each(function(){ 

    // it would be easy to wrap it with strike 
    $(this).closest('.price-box').find("span.regular-price").wrap("<s>"); 

    // or you can also add a class 
    // $(this).closest('.price-box').find("span.regular-price").addClass("strike"); 
    }) 

});​ 

demo

+0

谢谢Reigel。它完美的作品。仅向具有特殊价格的产品添加删除线。没有特价的产品的样式正常。完善!! – Buddy 2010-05-01 22:32:40