2010-06-11 76 views
3

$(this +「p」)。slideDown(「slow」);我試圖在jquery中選擇「this」的鄰居兄弟

$(this)+ $(「p」)。slideDown(「slow」);

$(「this + p」)。slideDown(「slow」);

不起作用。

+0

感謝Tim RIDGELY和S潘伯恩 – phil 2010-06-11 19:24:31

+0

這'$( 「this + p」)。slideDown(「slow」);'應該像W3C那樣爲HTML5/CSS3標準化 - 看起來jQuery需要實現這一點(2013年1月) - Hurrrry up! – ppumkin 2013-01-07 13:41:51

回答

1

Next

$(this).next("p").slideDown("slow") 

請確保「p」元素是直接相鄰的,雖然。否則,你會想使用nextAll。

+0

您的答案不正確,因爲您無法選擇下一個DOM元素。只有具有ID或Class的元素。取而代之的是'.children()'-1 – ppumkin 2013-01-07 13:47:58

+0

使用'children()'得到一個**相鄰的**項目?那會不會讓這個孩子回來? – 2013-07-05 18:38:15

2

是的,你的語法不好。您應該使用jQuery的Sibling功能:

$(this).siblings().find("p").slideDown("slow"); 

jQuery的API的網站是真棒像這樣看的東西了,我要靠它幾乎每天。我會密切關注它。

+0

語法不錯。它實際上是一個標準化的W3C語法 - 但jQuery不能正確解釋它? – ppumkin 2013-01-07 13:57:58

0

jQuery有沒有似乎適用於此?可能我們嘗試使用的語法不正確。

next()只能選擇具有ID或類的元素 - 不僅僅是預期的裸dom元素。

反而使用。 >意味着只選擇第一級降序。

$('body > div').hide();

但是這給了完全相同的結果

$('body').children('div').hide();

但是,

  • 下一頁
  • $('body + div').hide();

  • 上一頁
  • $('body ~ div').hide();

似乎並不如預期的工作?但jQuery用它作爲例子對CSS選擇...

可能有一個複雜的語法來實現這一點,但我想不出它...