我想找到最近的元素,其中包含一個類....這是努力找到當前元素的「堂兄」,我有.. 以下沒有工作:jquery cousin元素
$('myelement').closest ('*:has(.class1)').find('class_cousin')
我使用*
在closest
,因爲我不知道元素是什麼類型的,我找的人我也不知道是否有任何類或ID(我試圖保持它一般用於插件)
任何想法如何做到這一點? 謝謝
我想找到最近的元素,其中包含一個類....這是努力找到當前元素的「堂兄」,我有.. 以下沒有工作:jquery cousin元素
$('myelement').closest ('*:has(.class1)').find('class_cousin')
我使用*
在closest
,因爲我不知道元素是什麼類型的,我找的人我也不知道是否有任何類或ID(我試圖保持它一般用於插件)
任何想法如何做到這一點? 謝謝
我覺得你很接近。像這樣的東西應該工作:
$('myelement').closest(':has(.yourClass)').find('.yourClass')
我認爲,關鍵是你要尋找的是有你正在尋找的特定類最接近的父母,則希望找到特定對象。
當然,上面的問題是它不一定找到.yourClass的一個實例。你可以有一個具有多個表親對象的父對象。我也不確定上面的查詢有多昂貴。可能存在性能問題。
像一個魅力工作。 這是一個表單驗證插件(我知道有[R萬噸他們在那裏,但我想經過鍛鍊,也許讓一些更靈活的)......我猜我想說的是,性能並不重要得多這裏:) 我感謝幫助 – salmane 2010-04-20 22:19:58
我是新來的StackOverflow,我不知道如果我能不能這麼做,但我編輯@robjb的答案按我的需要,並張貼在這裏,萬一如果它可以幫助別人。完全信貸僅限於他。
在情況下,如果有人想只選擇特定的表兄妹,而不是所有的堂兄弟(即要用選擇),那麼我們可以用下面的函數。如果選擇器沒有作爲參數傳遞,那麼它會給所有的表兄弟。
(function($) {
$.fn.cousins = function(selector) {
var cousins;
this.each(function() {
var auntsAndUncles = $(this).parent().siblings();
auntsAndUncles.each(function() {
if(cousins == null) {
if(selector)
cousins = auntsAndUncles.children(selector);
else
cousins = auntsAndUncles.children();
}
else {
if(selector)
cousins.add(auntsAndUncles.children(selector));
else
cousins.add(auntsAndUncles.children());
}
});
});
return cousins;
}
})(jQuery)
例使用上述功能將作爲
$(clickedObj).cousins('.singleWheel');
上面的回答只給表兄弟。
你是說你知道類,你正在試圖獲得與最接近'()',或者你沒有? – user113716 2010-04-20 22:11:51