我正在尝试将一些jQueryUI功能应用于整个SPA中的元素,但是我在省略某个父级中包含的元素时遇到了麻烦。我现在不确定jQuery是否可以做我现在要问的事。
相关代码:
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
中的所有元素 no 父元素,第一个父元素或其他元素具有.no-controls
类。
这听起来很简单,但我似乎无法让它发挥作用。我尝试了.find()
,.filter()
,.remove()
的不同组合......但它似乎永远不会完全符合我的需要。
任何提示?
答案 0 :(得分:2)
可以在closest()
filter()
var $filteredCollection = $context.filter(function(){
return !$(this).closest('.no-controls').length;
});
closest()
检查元素本身和所有祖先
答案 1 :(得分:0)
我的建议是:
jQuery.expr[':'].parents = function(a,i,m){
return jQuery(a).parents(m[3]).length < 1 && !jQuery(a).is(m[3]);
};
$context.filter(':parents(.no-controls)')