2015-02-24 75 views
1
<div class="col-1-3"> 
    <div class="click"></div> 
</div> 
<div class="col-1-3"> 
</div> 
<div class="col-1-2"> 
</div> 

使用jQuery,我需要在用戶點擊「click」div時選擇col-1-2 div。我需要用col-1-3替換col-1-2。到目前爲止,我已經嘗試了使用parent(),next(),find()的各種方法;等等。現在,我正在尋找:使用jQuery選擇父母后的div

$(".click").parent().next(".col-1-2").removeClass("col-1-2").addClass("col-1-3"); 

這顯然不起作用,但我不知道從哪裏去。

+0

如果你想讓用戶點擊一個元素來觸發一些JavaScript:使用一個按鈕,這是他們設計的。 – Quentin 2015-02-24 15:53:34

回答

2

next只會查看下一個元素。您需要使用nextAll來測試以下所有兄弟姐妹。

使用this而不是選擇器將確保您處理的是實際點擊的div而不是另一個具有相同類名的div。

$(this).parent().nextAll(".col-1-2").removeClass("col-1-2").addClass("col-1-3"); 

你也不妨來過濾結果的變化僅適用於the first match

+0

如果你使用兄弟姐妹(「。col-1-2」)而不是'nextAll()',那麼它也可以工作@ – 2015-02-24 15:54:20

+0

@YerkoPalma - 假設獲得*之前的兄弟姐妹以及之後的兄弟姐妹並不是問題那些。 – Quentin 2015-02-24 15:55:12

+0

nextAll可以工作,但我只需要更改最近的col-1-2。如果我有另一個名爲col-1-2的div類,它看起來像都改變了,因此nextAll。 – user715564 2015-02-24 16:52:13

0

還有一個稍短版本:

$(this).parent().siblings(".col-1-2").toggleClass("col-1-2 col-1-3"); 

$.fn.toggleClass可以用來代替或removeClass + addClass組合:col-1-2將被刪除,col-1-3將被添加。