2011-10-29 20 views

回答

5

我不清楚爲什麼$ (「身體」)將無法工作。

看到http://api.jquery.com/element-selector/

這可以從任何地方使用,哪些孩子你是「中」無所謂。


基於評論其他注意事項:

這真的取決於每個案件。如果需要是相對的(頁面中有多個表),那麼使用parent()closest()通常是最好的方法。在更簡單的頁面中,您可以直接按ID搜索元素。

兩個例子:

與要移動一個列表和其他元素之間兩個列表的頁面。由於此功能被定義爲只有兩個列表的頁面,因此使用直接方法很有意義。

帶有動態用戶列表和動態添加用戶內容元素(例如動態聊天)的頁面。在這種情況下,您希望使用相對的方式,因爲每個用戶的區域將具有相同的元素,並且您想要修改相對於用戶區域的區域。

+0

是的,我試圖處理每個表格行中的按鈕觸發的事件。如果我想讓jquery引用表/行之外的元素,那麼從頂層搜索元素看起來要容易得多,而不是試圖擺脫表格然後搜索此特定元素。 – mko

+0

@John:看我的編輯 – Hogan

0

您可以隨時使用$.prev()$.next()

$.parent()將返回父容器

http://api.jquery.com/parent/

或者通過選擇:

$('body')

+0

使用'#bodyID'永遠不會有好的理由,因爲HTML只能有1個body元素,並且運行速度會更慢。 – Hogan

+0

你沒錯..但我記得在ie6中需要添加身份證的錯誤..無論如何,我修復了我的答案。 –

0

您也可以嘗試

element.closest('body'); 

雖然這肯定是不實際的,你應該是指身體一次,並緩存結果在一個變量,如:

body = $('body'); 

,然後就指到body

+1

爲什麼這樣做? HTML只能有一個'',這會比'$(「BODY」)'慢得多。 – Hogan

+0

只是想表明有'最接近',更新了答案,說這是不實際的。 –