我想用最接近遍歷選擇一個項目,我的HTML如下:最接近()遍歷在我的情況不工作
<span id='target'></span>
<a></a>
jQuery的
assume 'a' = $(this),
then I do $(this).closest('#target');
,但它似乎它不選擇#target ..這裏有什麼問題?
我想用最接近遍歷選擇一個項目,我的HTML如下:最接近()遍歷在我的情況不工作
<span id='target'></span>
<a></a>
jQuery的
assume 'a' = $(this),
then I do $(this).closest('#target');
,但它似乎它不選擇#target ..這裏有什麼問題?
Closest('#target')
不會在這裏工作,因爲a
標記是兄弟span#target
不是父母。使用Closest
來查找這兩者的父元素,然後執行查找以獲得您的target
範圍,或者僅使用.prev
獲取兄弟target
範圍。
$(this).closest("div").find("#target");
或
$(this).prev("#target");
由於您擁有id,因此您可以將它用作id選擇器,因爲id在文檔中是唯一的 - 在這種情況下不需要使用任何關係查找。
var target = $('#target')
如果有像上述其中anchor
元件後面是span
元件然後使用一類屬性,而不是id
的圖案。在這種情況下,span
是anchor
元素的前一個兄弟,因此您需要使用.prev()。
<span class='target'></span>
<a></a>
var target = $(this).prev('.target');// $(this).prev() is sufficient
.closest()將尋找一個祖先元素,而不是兄弟姐妹。
關閉次數不檢查兄弟姐妹,它檢查元素及其父母jQuery.closest
對於組中的每一個元素,獲得由選擇相匹配的第一個元素測試元素本身並遍歷DOM樹中的祖先。
在你的情況<a>
和<span>
是兄弟,不是父/子 - 所以使用closest
不會找到span
從a
開始。
這樣做的目的是什麼,因爲你有'id',爲什麼不能使用'id'選擇器 –