jQuery如果可见的话

时间:2011-08-18 07:19:05

标签: jquery

 <div id="chatCenterMembers">
   <div class="chatmember">
       <a title="Blah Blah Blah">
          <div class="newchatmessage" style="display: block;"></div>

如何在if语句中捕获可见div?

我将$(this)设置为<div class="chatmember"> - 从顶部开始的第二行。

我一直在下面工作但到目前为止运气好了。

if($(this+' a div.newchatmessage').filter(":visible")) {

上面刚刚退出......

我也在下面试过,它也不起作用

if ($(this + 'a div.newchatmessage').is(':visible')) {

3 个答案:

答案 0 :(得分:49)

使用.is()检查元素是否满足某个要求,例如:

if ($(this).find('a div.newchatmessage').is(':visible'))

或者,如果您希望它更具可读性:

var element = $(this).find('a div.newchatmessage');

if (element.is(':visible')) {
    // Do your thing
}

答案 1 :(得分:11)

.is()

有关此方法的任何详细信息,只需向下滚动一下......这里有一堆示例!

编辑(感谢@Wesley Murch提示): 如果这不起作用,你的选择器可能是错误的...... $(this+' a div.newchatmessage')看起来很奇怪...它可能更像是$('a div.newchatmessage', this)$('a div.newchatmessage', $(this)),取决于this是一个jQuery变量与否

答案 2 :(得分:0)

我遇到了类似的情况,并且想要注意你应该警惕jquery选择器返回多个元素。我相信.is(':visible')检查只会评估数组中的第一个元素。您可以检查该选择器返回的所有元素是否都可见,如下所示。

if($('.someElementWithThisClass:visible').length > 0){
    //Do it to it
}