jquery检查属性元素值

这个问题在这里已经有了答案:

  • 我如何检查一个元素是否隐藏在jQuery中? 53个答案

  • 你遇到的问题是你在这里使用.attr().display来混合jQuery和vanilla JS方法。 你也试图将整个style字符串与(如果有效的话)一个CSS规则进行比较。

    实现这一点的更好方法是使用jQuery的is()方法,以及:visible选择器。 尝试这个:

    if ($(this).closest('li').is(':visible')) {
      // script
    }
    

    如果只想检查元素是否隐藏,可以使用css()方法检查显示是否设置为none。 使用.attr('style')它会返回元素上的整个样式。

    if($(this).closest('li').css('display') == 'none' ){
    
    }
    

    工作demonstrative示例(我已将内联样式仅用于演示,但我不建议您使用它):

    $('li').each(function(i) {
      if ($(this).css('display') == 'none') {
        console.log(i); // logs the indexes of the hidden elements
      }
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <li style="padding-bottom: 0px; display: none;">
      <span> Content </span>
    </li>
    <li style="padding-bottom: 0px; display: none;">
      <span> Content </span>
    </li>
    <li style="padding-bottom: 0px;">
      <span> Content </span>
    </li>

    你可以直接使用:visible或hidden选择器:

    if ( $('li:visible').length > 0 ) {
        // it is visible
    }
    

    您可以使用:可见或:使用is()的隐藏选择器:

    if ( $('li').is(':visible') ) {
        // it is visible
    }
    

    最后,你可以用css()检查'display'的具体值:

    if ( $('li').css('display') === 'none' ) {
        // it is hidden
    }
    
    链接地址: http://www.djcxy.com/p/2399.html

    上一篇: jquery check the attribute element value

    下一篇: how to check if one element is hidden with jquery