<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')) {
答案 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)
有关此方法的任何详细信息,只需向下滚动一下......这里有一堆示例!
编辑(感谢@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
}