2013-10-26 77 views

回答

2

Closest('#target')不會在這裏工作,因爲a標記是兄弟span#target不是父母。使用Closest來查找這兩者的父元素,然後執行查找以獲得您的target範圍,或者僅使用.prev獲取兄弟target範圍。

$(this).closest("div").find("#target"); 

$(this).prev("#target"); 
+0

這樣做的目的是什麼,因爲你有'id',爲什麼不能使用'id'選擇器 –

1

由於您擁有id,因此您可以將它用作id選擇器,因爲id在文檔中是唯一的 - 在這種情況下不需要使用任何關係查找。

var target = $('#target') 

如果有像上述其中anchor元件後面是span元件然後使用一類屬性,而不是id的圖案。在這種情況下,spananchor元素的前一個兄弟,因此您需要使用.prev()

<span class='target'></span> 
<a></a> 

var target = $(this).prev('.target');// $(this).prev() is sufficient 

.closest()將尋找一個祖先元素,而不是兄弟姐妹。

0

關閉次數不檢查兄弟姐妹,它檢查元素及其父母jQuery.closest

對於組中的每一個元素,獲得由選擇相匹配的第一個元素測試元素本身並遍歷DOM樹中的祖先。

在你的情況<a><span>是兄弟,不是父/子 - 所以使用closest不會找到spana開始。