我想找到最近的元素,其中包含一个类....这是努力找到当前元素的“堂兄”,我有.. 以下没有工作: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