【问题标题】:Determine if CSS property is set to a certain value?确定 CSS 属性是否设置为某个值?
【发布时间】:2018-12-05 15:07:52
【问题描述】:

只是想知道如何确定这样的 jQuery 语句

if( $("#test").css('display', 'block') == true) {
   return true;
}

基本上,我希望能够通过“display:block”属性确定一个元素当前是否正在显示或隐藏?

【问题讨论】:

    标签: jquery attributes hide show


    【解决方案1】:

    使用

    if( $("#test").css('display') == 'block') {
    

    我很确定.css(),返回一个计算值,总是会返回一个小写的结果 - 文档对此只字未提。为了完全确定,你可以做一个

    if( $("#test").css('display').toLowerCase() == 'block') {
    

    虽然您可以依赖 display 提供可靠的结果,但请注意,某些 CSS 属性并不总是按照定义的方式显示。例如

    a { color: red }
    

    当使用.css() 查询时将变成rgb(255,0,0);

    【讨论】:

    • @Tom 您正在检查test1 是否有display: none,而它没有。你的意思是display != 'block'
    • @Pekka - 感谢您的回复 :) 不,我想检查 #test 是否是块 - 如果是块则显示 test1 ?
    • @Tom 是的,我现在明白了。试试这个:jsfiddle.net/eEF9Y/4 你没有在左侧菜单中选择 jQuery,代码可以工作。
    【解决方案2】:

    你可以使用 isvisible 也可以隐藏

    if ( $('#test').is(':visible')){
    

    【讨论】:

    • 如果您想要确定可见性,这实际上会更好,+1
    • 这很有趣。我试图通过应用显示的媒体查询暂停一些隐藏在移动设备上的视频:无;对他们来说,但安慰 $(elm).css('display') 返回 'block',这是他们的默认值。你的回答对他们有​​用。非常感谢!
    【解决方案3】:

    我认为测试这一点的唯一方法是与实际值进行比较:

    function displayHidden(elem) {
        return $(elem).css('display') === 'hidden';
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      相关资源
      最近更新 更多