2012-11-26 98 views
0

我得到了以下HTML:使用jQuery來設置類的元素

<ul class="specs"> 
     <li> 
      <div class="trigger">› City (2)</div> 
      <div class="cityByLocation"> 
       <ul> 
        <li class="cityInfo"> 
         <div class="cityName" style="float: left;"> 
          › New York 
         </div> 
         <div class="cityDistance" style="float: left;"> 
          430 miles 
         </div> 
         <div class="btn-take"></div> 
        </li> 
        <li class="cityInfo"> 
         <div class="cityName" style="float: left;"> 
          › Chicago 
         </div> 
         <div class="cityDistance" style="float: left;"> 
          430 miles 
         </div> 
         <div class="btn-take"></div> 
        </li> 
       </ul> 
      </div> 
     </li> 
<ul> 

當我點擊「市(2)」,兩者的div下出現。但是,我想爲他們添加一個類。

這是我的js現在:

$('.trigger').click(function() 
    { 
     $(this).siblings('div').eq($(this).index()).toggle(); 

     $(this).eq($(this).index()).toggleClass("locationSelected"); 

     return false; 
    }); 

這增加了名字後面的藍色背景「市(2)」,而不是底層的div,這是我想要的。

及其與類「cityByLocation」股利我想補充locationSelected到類。

編輯:

我結束了使用

$( '扳機 ')點擊(函數(){$ (本).siblings(' DIV')EQ($。 (this).index())。toggle(); $(this).toggleClass(「locationSelected」); $(this).siblings('div')。eq($(this).index()) .toggleClass(「locationSelected」);

return false; }); 
+0

豈不$(本).EQ($(這個).index())和$(this)是一樣的嗎? – Popnoodles

+0

看來你是對的。我很困惑於jQuery選擇 – sindrem

回答

4

比使用toggleClass相反,使用addClass

$(this).eq($(this).index()).addClass("locationSelected"); 
+0

+ 1'd爲OP的代碼的正確答案,但糾正我,如果我錯了... $(this).eq($(this).index() )=== $(本) – Popnoodles

+1

$(本).addClass( 「locationSelected」);使得這裏 –

0
.addClass("locationSelected"); 
1
$(this).siblings('.cityByLocation').addClass("locationSelected"); 

使用,如果你只是想添加的類別,但如果你想刪除它在交替的點擊使用toggleClass代替。

+0

更有意義這似乎是最接近的答案,但它仍然是行不通的。我已經嘗試過這一點。任何其他想法? – sindrem

+0

這工作。浮動在我的divs中使它看起來好像不是一開始。 – sindrem

+0

我似乎無法保持立「cityInfo」的一條線。任何想法,如果我不能浮動他們? – sindrem

0

我建議,假設你想在類名添加到嵌套在相鄰的divuldiv元素:

$(this).next('.cityByLocation').find('div').addClass('locationSelected'); 
相關問題