首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >需要使用jQuery.find查找具有特定样式的元素

需要使用jQuery.find查找具有特定样式的元素
EN

Stack Overflow用户
提问于 2009-10-13 20:06:25
回答 7查看 69.3K关注 0票数 34

对的..。我需要找到所有< ul style="display: block;">元素,以便可以将其设置为do display:none。

我想我是在正确的道路上...但并不完全是这样:

代码语言:javascript
复制
jQuery('#adminMenu li').find("ul").css('display');

对于高级用户:如何使用一行来查找和更改样式?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-10-13 20:09:25

如上所述,这很棘手,但可以通过其他方式解决。最简单的是:

代码语言:javascript
复制
$("#adminMenu li ul:visible").hide();

假设项目要么隐藏,要么不隐藏。当然,考虑到你想隐藏它们,为什么不干脆:

代码语言:javascript
复制
$("#adminMenu li ul").hide();

尽量避免直接更改CSS样式。这是有问题的。它很难逆转,因为你发现很难搜索。请改用类:

代码语言:javascript
复制
#adminMenu li ul { display: none; }
ul.block { display: block; }

通过以下方式:

代码语言:javascript
复制
$("#adminMenu li ul").removeClass("block");

代码语言:javascript
复制
$("#adminMenu li ul.block").removeClass("block");
票数 28
EN

Stack Overflow用户

发布于 2009-10-13 20:18:06

您可以使用属性选择器和“包含”选项

代码语言:javascript
复制
$('#adminMenu li ul[style*="display:block"]').hide()

这实际上是说‘任何ul的style属性包含文本display:block’

票数 36
EN

Stack Overflow用户

发布于 2014-04-11 19:27:20

您可以使用filter。(http://api.jquery.com/filter/)

因此,您可以执行以下操作。

代码语言:javascript
复制
$('ul').filter(function() {
    return $(this).css('display') == 'block';
});
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1562634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档