如何在jQuery中按CSS样式进行选择?
我试图找到所有具有CSS样式的父元素如何在jQuery中按CSS样式进行选择?,jquery,css,jquery-selectors,Jquery,Css,Jquery Selectors,我试图找到所有具有CSS样式的父元素display:none。但我似乎无法让它发挥作用。以下是我得到的: var $parents = $(...).parents("[css=display:none]"); 如果您希望实际的显示:无(不仅仅可能包含在另一个显示:none;)中),您可以使用和获取这些父项,如下所示: var $parents = $(...).parents().filter(function() { return $(this).css
display:none
。但我似乎无法让它发挥作用。以下是我得到的:
var $parents = $(...).parents("[css=display:none]");
如果您希望实际
的显示:无
(不仅仅可能包含在另一个显示:none;
)中),您可以使用和获取这些父项,如下所示:
var $parents = $(...).parents().filter(function() {
return $(this).css('display') == 'none';
});
这将获取父对象,然后对其进行过滤,以仅获取display:none代码>在特定的家长身上。是实现目标的一种非常简单直接的方法。这可能也是表现最好的方法。但是,为了完整性和方便性(如果您经常这样做),也可以创建您自己的选择器:
$.expr[':'].css = function(obj, index, meta, stack) {
var args = meta[3].split(/\s*=\s*/);
return $(obj).css(args[0]) == args[1];
}
// Then we can use our custom selector, like so:
$("#myElement").parents(":css(display=none)").show();
例如-
有关创建自定义选择器的详细信息,请参见:
$(文档).ready(函数(){
$('a').parents('div[style*=“display:none”],[style*=“display:none”]).show();
});
aaa
bbb
ccc
你很接近:
$(...).parents('[style*="display: none"]');
注意:这会对元素属性值进行子字符串搜索,因此不如上面显示的$(this).css(…)
过滤器解决方案好
这个
$(...).parents('[style*="display: none"]');