jquery - 如何检查元素 visibility=hidden 是否为 true jQuery

标签 jquery html css

假设我有 2 个元素,div1 和 div2。当我点击 div1 时,div2 应该在 visibility=hiddenvisibility=visible 之间 .toggleClass()。这很好用。但是当我尝试这个时:

if($('#div2').css('visibility') == 'hidden') {
$('#div1').replaceWith('<span> Duh </span>');
}

什么都没有发生。如果我将 'hidden' 更改为 'visible' 它就可以正常工作。但这不是我想要的。我知道当使用 visibility=hidden 时,元素仍然被认为是可见的,但不应该 .css('visibility') == 'hidden' 检查元素的样式是否已设置可见性=隐藏?就我而言,这应该是正确的。

我也试过

if($('#div2').hasClass('visHidden')) {
$('#div1').replaceWith('<span> Duh </span>');
}

但是没有任何反应。

问题可能是当 DOM 加载时 visHidden 和 visVisible 类都没有设置?因为我只在单击元素时使用 jQuery 设置它们。如果是这样的话,有办法解决吗?而且我不能使用显示属性。

最佳答案

您应该尝试 jquery.is() 方法来检查可见性。

$(element).is(":visible") // Checks for display:[none|block], ignores visible:[true|false]

在你的情况下,

if(!$('#div2').is(":visible")) {
    $('#div1').replaceWith('<span> Duh </span>');
}

关于jquery - 如何检查元素 visibility=hidden 是否为 true jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19131902/

相关文章:

javascript - 努力简化 javascript

javascript - 使用 jQuery 和/或 javascript 检索页面上的所有斜体文本片段

javascript - 使用 css/javascript 在页面中所有图像的右上角动态放置一个按钮/div

html - 如何垂直对齐另一个 div 内的两个 div?

jquery获取img src并添加为另一个div中的背景

html - @keyframes 不适用于 %

javascript - 防止 jQuery 插件多次加载

javascript - 如果内部链接有空 href,则隐藏父 div

html - 网站的响应在 iphone 10 或任何 iOS 中不工作

css - ReactJS + Heroku : Why doesn't my website become mobile responsive?