如何组合each和attr函数

时间:2015-06-22 10:06:27

标签: jquery

嘿我试图遍历所有具有类foo的元素,也没有将attr'visibility'设置为'hidden'。

我有以下代码不起作用。

错误来自未定义的attr()。我怎样才能做到这一点?

$('.foo').each( function() {
    if ($(this).attr('visibility') !== 'hidden') {
        $(this).hide();               
    }

3 个答案:

答案 0 :(得分:1)

使用.css()代替.attr()可见性是css的一个属性。你不能用attr或prop直接打电话。在jquery中有选项是.css()

if ($(this).css('visibility') !== 'hidden') {

答案 1 :(得分:1)

使用filter().css()'attr()'不会返回css / style属性。

$('.foo').filter(function(){
    return $(this).css('visiblity') !== 'hidden'                 
}).hide();

<强> DEMO

.filter() - 全部可见(样式:visibility !== visible元素。

注意: .hide()会改变css display属性,而不会改变visibility 。如果您希望更改visibility使用.css('visibility','hidden')而不是hide()

答案 2 :(得分:-1)

使用prop而不是attr并删除!==

$('.foo').each( function() {
                        if ($(this).prop('visibility') != 'hidden') {
                          $(this).hide();               
                      }