1

我想使用 jquery 过滤器方法返回匹配的元素 ID,但它正在返回“对象对象”小提琴

//css

.none{display:none}

//html

<div class="none">
 <span style="display:none">first</span>
 <span style="display:block">second</span>
</div>

//脚本

visibles = $('.none').find('span').filter(function(){
if($(this).css('display') == 'block')   
return $(this).attr('id');
});
alert(visibles);
4

2 回答 2

2

您给过滤器的回调返回一个用于过滤的值。

如果您只有一场比赛,请使用:

visibleId = $('.none').find('span').filter(function(){
    return $(this).css('display') == 'block'
}).attr('id');

如果要获取匹配 id 的数组,请使用

visibles = $('.none').find('span').filter(function(){
    return $(this).css('display') == 'block'
}).map(function(){ return this.id }).get();

示范

于 2013-01-24T08:45:45.230 回答
1

jQuery.filter返回匹配的元素,所以需要id过滤元素后获取值。

visibles = $('.none').find('span').filter(function(){
   if($(this).css('display') == 'block')   
       return true;
}).attr('id');
alert(visibles);

小提琴

于 2013-01-24T08:47:08.927 回答