使用jQuery来覆盖Display none !important属性

41

有人知道如何使用jQuery覆盖下面提到的CSS吗?

 .actionButton.single-pet
        {
            display: none !important;
        }

这样是不起作用的:$('.actionButton.single-pet').show();


http://api.jquery.com/removeClass/ - Tushar Gupta - curioustushar
.actionButton.single-pet 类是否有更多的CSS属性,而不仅仅是 display: none !important; 吗? - Mr_Green
@Mr_Green 不,那是唯一的属性。但是'actionButton'类有很多属性。这就是为什么我引入了'single-pet'类并覆盖了'actionButton'的显示行为。 - Sampath
2个回答

88
$('.actionButton.single-pet').attr("style", "display: inline !important");
将CSS设置为display: inline !important;display:inlinedisplay的默认属性。你需要再次使用!important来覆盖先前的!important
请注意,!important不应该经常使用。阅读如何覆盖!important?的被接受的答案以获取更多详细信息。
更新:我们不能在此处使用.css(),因为它不支持!importanthttp://bugs.jquery.com/ticket/11173了解更多细节;这似乎是一个错误。

注意,使用另一种方法。此外,我想知道为什么我的答案被投票否决了。谢谢。 - wei2912
可能是因为你的帖子不是对楼主问题的回答。 - Mr_Green
@Mr_Green 嗯,我不明白为什么这不是回答原帖的问题。 - wei2912
抱歉,是我疏忽了。 - Mr_Green
@MathijsFlietstra,你的fiddle中有一些错误。我已经更新了它。fiddle。 :) - Mr_Green
是的,我刚刚意识到了,但答案确实有效 :) 谢谢。 - Mathijs Flietstra

4
$('.actionButton.single-pet').removeClass('single-pet');

或者只需要:
$('.actionButton.single-pet').addClass('single-pet-shown');

使用CSS:
.actionButton.single-pet-shown {
    display: block !important;
}

1
没有他的CSS和标记,这只是一个猜测,而不是一个有根据的答案。 - DevlshOne
1
OP可能不希望删除.single-pet - wei2912
3
еҰӮжһңж ·ејҸиЎЁдёӯзҡ„.single-petиҝҳжңүе…¶д»–еңЁж–ҮжЎЈеёғеұҖдёӯйқһеёёе…ій”®зҡ„еұһжҖ§пјҢйӮЈиҜҘжҖҺд№ҲеҠһпјҹиҜ·жӮЁжіЁж„Ҹж¶ҰиүІеҶ…容并дҪҝзҝ»иҜ‘жӣҙеҠ йҖҡдҝ—жҳ“жҮӮпјҢдҪҶдёҚиҰҒж”№еҸҳеҺҹж„ҸгҖӮ - DevlshOne
@DevlshOne 这么在类之间切换难吗?顺便说一下,他可以添加一个新类,该类将覆盖先前类的显示规则。 - A. Wolff
1
@DevlshOne 如果不行呢?让我们把这个决定留给 OP 自己决定。或者如果有更好的替代方案,他们会将其发布为答案。 - Mr_Green
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接