2012-10-03 21 views
-1

我正在爲wordpress創建自己的小部件。我有以下代碼:如何僅將目標元素設爲同一父項

jQuery("body").on("change", "select[id=elementselect]", function(){ 
    var val = jQuery(this).val(); 
    jQuery('#element1,element2').hide().filter('#element'+val).fadeIn('slow') 
}) 

代碼工作很大,但如果用戶在邊欄有兩個或兩個以上的小部件會影響所有的人。由於它們基於一個類,因此我無法賦予小部件唯一名稱中的元素。那麼,是否有可能只針對與我正在使用的「select」元素共享父元素的元素?

的HTML看起來像這樣(簡化):

<form> 
    <fieldset> 
    <select id="elementselect"> 
     <option value="1"></option> 
     <option value="2"></option> 
    </select> 
    </fieldset> 

    <fieldset id="element1"></fieldset> 

    <fieldset id="element2"></fieldset> 
</form> 

或者有另一種解決方案?

編輯:我現在修好了。只是改變了ID的類和使用.closest()

謝謝大家

+0

這是你所需要的? http://api.jquery.com/parent/ – PhillipKregg

+0

可能。但我不確定如何使用它.on。 – John

+0

在這裏共享同一父元素的元素究竟是什麼? – Jon

回答

0

不能完全確定你的問題是什麼,但要獲得一個元素的兄弟姐妹,你可以這樣做:

var $siblings = $('#childElement').siblings(); 

http://api.jquery.com/siblings/

0

也許這將有助於...

下面是一個JS小提琴的例子,顯示瞭如何將jQuery方法parent()children(),並siblings()與事件工作:http://jsfiddle.net/phillipkregg/GWCyL/

代碼很簡單:

$("#parent_div p").on("click", function() { 
    console.log($(this).parent().children().siblings()) 

}); 

點擊在div一個段落元素上升到其父 - 股利 - 然後尋找其子 - p標籤 - 然後記錄段落標籤的兄弟。

+0

爲什麼在我的回答中使用.parent()。children()。siblings()而不是兄弟姐妹()? – Ozzy

+0

你當然可以這樣做 - 我假設OP可能不知道這些如何工作,所以我使用它們並給出一個例子,他可以玩弄它並從中學習。當你張貼你的時候,我也在構建我的答案,所以我從來沒有看到它。 – PhillipKregg

相關問題