2013-02-11 51 views
3

我有一個小標記測試切換div。jQuery - 針對Sibilings,父母,後代和其他家庭動物

A(工作)樣機可以在這裏找到:http://jsfiddle.net/obmerk99/d78aF/1/

的問題是,我需要的隱藏/顯示鏈接放置在另一個div喜歡這裏:

http://jsfiddle.net/obmerk99/d78aF/2/

..當我移動它時,它並不適用於我所有的努力。

我曾嘗試:

jQuery(this).next().next('.toggle').toggle('slow');

jQuery(this).next('.toggle').toggle('slow');

和許多人一樣,但它僅僅是試驗和錯誤 - 而我想了解這個家庭的東西(我猜我不是一個家庭的人是subconscensly infl;對我的編碼能力: - ))

說到的理解,在我的試錯的一個,我做了這一點:

http://jsfiddle.net/obmerk99/d78aF/5/

這是不工作的,但加入小</br>突然使得它的工作。

http://jsfiddle.net/obmerk99/d78aF/4/

是否空</br>標籤被認爲是 「兄弟」?

+0

欣賞你的努力,用小提琴來解釋這個問題,但我認爲它仍然是混亂的,你可以什麼都你希望做深入淺出的講解? (忘了一段時間的小提琴) – 2013-02-11 08:37:23

+0

我想要的是從位於前一個div內的鏈接切換DIV。 – 2013-02-11 08:59:51

回答

4

嘗試用這一個:http://jsfiddle.net/d78aF/6/

jQuery(this).siblings('.toggle').toggle('slow'); 

根據你的評論,你可以做到這一點的方法:http://jsfiddle.net/d78aF/7/

jQuery(document).find('.toggle').toggle('slow'); 

新小提琴:http://jsfiddle.net/d78aF/8/

+0

感謝您的回答,但在您的fidddle中,鏈接元素的位置與我的第一個(工作)示例完全相同。當我將它移動到前一個div時它不起作用(我的第二個示例) – 2013-02-11 08:59:07

+0

剛剛更新了答案。 – Jai 2013-02-11 09:18:42

+0

好的,這似乎工作,但整個標記被改變..整個第二個div被移動。有沒有這樣做的方式,而不移動第二個div,只是鏈接? – 2013-02-11 09:29:15

1

是否有空的</br>標籤被認爲是「兄弟姐妹」?

你不想自己試試?

<div id='firstEl'></div> 
<br/> 
<div></div> 

<div id='siblings'></div> 
在你的js代碼

然後:

$(function(){ 
    $('#siblings').text($.makeArray($('#firstEl').siblings()).join(',')); 
}); 

結果:

[object HTMLBRElement],[object HTMLDivElement],[object HTMLDivElement] 

你可以看到,<br/>元素被視爲兄弟姐妹

http://jsfiddle.net/EP5bj/

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

+0

謝謝,我在上面的例子中看到,我只是不明白「爲什麼」 - 但那是我的缺陷。同時,我如何才能在我的問題中正確選擇正確的div? 。 – 2013-02-11 09:01:07

0

你可以考慮更有針對性的方法,在HTML標記中指定要隱藏的div。這是很多軟件包的常見做法,比如jQuery Mobile。

http://jsfiddle.net/turiyag/R5sDr/

​​
+0

感謝您的建議..但這個標記是LIST的一部分,它有很多同一類的項目,但沒有ID .. – 2013-02-11 08:52:03