2016-04-26 10 views
0

他の要素がクラスを持つ場合、クラスに要素を追加しようとしています。.orderitemが存在する場合、クラスをoutofstockにします。これは私がこれまでに得たものです:クラスが親コンテナにのみ存在する場合、子要素にクラスを追加する

if ($(".stockinfo.col4").hasClass("orderitem")) { 
    $(".stockinfo.col7").addClass("outofstock"); 
} 

問題は、私は同じクラスで複数のグループを持っているということです - これは子ドントは、このクラスを持っているにもかかわらず、それらのすべてにクラスを提供します。これを実行すると、親コンテナでのみ実行されます。

<div class="itembox centerbox col span_1_of_3"> 
    <div class="stockinfo col4 orderitem"> 
     <strong>Stock</strong> 
     : 4 
     <span></span> 
    </div> 
    <div class="addinfo col7"> 
     <input type="button" id="pl237792buy" class="actionbutton" value="Köp" onclick="buy(this, 237792, null, 'pl237792qty', null, '/ajax/buy')"> 
    </div> 
</div> 

答えて

0

orderitemstockinfo div要素の親ではありません。その兄弟は、あなたは、次のようなnext()メソッドを使用できるよう

if ($(".stockinfo.col4").siblings(".orderitem").length) { 
    $(".stockinfo.col7").addClass("outofstock"); 
} 
1

ため.siblings()方法を使用することができます。

$(".stockinfo.col4.orderitem").next(".addinfo.col7").addClass("outofstock") 

UPDATE:

$(".stockinfo.col4.orderitem").nextAll(".addinfo.col7").addClass("outofstock") 
+0

こんにちは!私はちょうどいくつかのグループでは、間に別のelmentがあることに気づいた - 次はすべてのグループのために働いていない。 – user2059370

+0

それから 'nextAll()'を使います。更新を参照してください。 @ user2059370 – Azim

1

また、以下のように行うことができます。

$(".stockinfo.col4.orderitem").parent().find(".addinfo.col7").addClass("outofstock"); 
関連する問題