Javascript 筛选出jQuery结果集中具有特定类的父级(在任何级别)的所有元素
我试图在整个SPA中将一些jQueryUI功能应用于元素,但是我在忽略某个父元素中包含的元素时遇到了问题。实际上,我不确定jQuery是否能满足我现在的要求 相关代码的位:Javascript 筛选出jQuery结果集中具有特定类的父级(在任何级别)的所有元素,javascript,jquery,jquery-ui,dom,jquery-selectors,Javascript,Jquery,Jquery Ui,Dom,Jquery Selectors,我试图在整个SPA中将一些jQueryUI功能应用于元素,但是我在忽略某个父元素中包含的元素时遇到了问题。实际上,我不确定jQuery是否能满足我现在的要求 相关代码的位: function initializeControls($container) { var $context; if ($container != undefined) $context = $container; else $context = $("html");
function initializeControls($container) {
var $context;
if ($container != undefined)
$context = $container;
else
$context = $("html");
$context = //$context, but ignoring all .no-controls elements and ALL children
//do stuff...
}
简单地说,我想要$context
中的所有元素,其中没有父元素、第一个父元素或其他元素具有。没有控件
类
这听起来很简单,但我似乎无法实现这一点。我尝试了.find()
,.filter()
,.remove()
的不同组合。。。但它似乎从来都不能完全满足我的需要
任何提示?可以在过滤器()中使用最近的()
closest()
检查元素本身,所有祖先可以在filter()中使用closest()
closest()
检查元素本身和所有祖先我的建议是:
jQuery.expr[':'].parents=function(a,i,m){
返回jQuery(a).parents(m[3]).length<1&&!jQuery(a).is(m[3]);
};
$context.filter(“:父项(.no控件)”)
我的建议是:
jQuery.expr[':'].parents=function(a,i,m){
返回jQuery(a).parents(m[3]).length<1&&!jQuery(a).is(m[3]);
};
$context.filter(“:父项(.no控件)”)
没有考虑过使用最近的()
,因为我以前在使用它时遇到过问题,但也许我没有正确使用它。问题-为什么使用.length
?它起作用了,但我很好奇它是如何起作用的。我没有考虑过使用最近的()
,因为我以前在使用它时遇到过问题,但也许我没有正确地使用它。问题-为什么.length
?它起作用了,但我很好奇它是如何起作用的。
var $filteredCollection = $context.filter(function(){
return !$(this).closest('.no-controls').length;
});