嘿我试图遍历所有具有类foo的元素,也没有将attr'visibility'设置为'hidden'。
我有以下代码不起作用。
错误来自未定义的attr()
。我怎样才能做到这一点?
$('.foo').each( function() {
if ($(this).attr('visibility') !== 'hidden') {
$(this).hide();
}
答案 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();
}