首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$(element).is(':visible')始终为false

$(element).is(':visible')始终为false
EN

Stack Overflow用户
提问于 2011-09-16 23:24:54
回答 4查看 1.4K关注 0票数 1

我有以下示例:http://jsfiddle.net/LAMdV/

HTML:

代码语言:javascript
复制
<div id="imageSlider">
    <span class="info" id="info1">
        hello world
    </span>
</div>

jQuery:

代码语言:javascript
复制
$('#imageSlider .info').click(function () {
    var i = $(this).attr('id');
    i = i.replace('info', '');

    if ($('#imageSliders .info#info' + i).is(':visible')) {    
        alert("hide");
    } else {
        alert("show");
    }
});

为什么is:visible的结果总是显示false?尽管它从一开始就是可见的!(在我的实际场景中,它之前是隐藏的,然后显示)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-16 23:27:31

您的标记的id为"imageSlider“,而选择器使用的是"#imageSliders”(复数)。

票数 5
EN

Stack Overflow用户

发布于 2011-09-16 23:29:50

这可能是因为id是imageSlider,而您的jQuery有#imageSliders (复数)。

票数 2
EN

Stack Overflow用户

发布于 2011-09-16 23:32:46

你混淆了你的语法。

代码语言:javascript
复制
 if ($('#imageSliders .info#info' + i).is(':visible')) { ... }

类名在ids之后引用。但是,ids是最快的选择器,因此只需获取信息{number}作为主选择器

代码语言:javascript
复制
 if ($('#info' + i).is(':visible')) { ... }

但是,由于这是在函数调用中进行的,因此可以只使用this

代码语言:javascript
复制
 if ($(this).is(':visible')) { ... }

以进一步解释何时将class与id组合使用。以页面上的id为例,它可以用active类来装饰。

代码语言:javascript
复制
$("#uniqueid")

vs

代码语言:javascript
复制
$("#uniqueid.active")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7446917

复制
相关文章

相似问题

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