jquery – 如何设置父属性?
我正在尝试写一个if语句,如果其中一个元素的显示设置为“none”,我希望父元素也显示“none”…
这是我正在尝试的代码,但这不起作用……
/* tried this first */ if($('#prevx a').attr('display') == 'none') { $(this).parent().attr('display','none'); } /* and then this */ if($('#prevxa > a').attr('display') == 'none') { $('#prevxa').attr('display','none'); }
标记看起来像这样:
试试这个:
if($('#prevx').css('display') == 'none') { $('#prevx').parent().css('display','none'); }
更好的是:
$('#prevx').parent().css('display',$('#prevx').css('display'));
这个例子适合我。 要隐藏/显示父级,请在无和内联之间切换子级的显示:
.attr用于id,title,alt,src等标签。
.css用于CSS样式,如显示,字体,文本修饰:闪烁等。
Pygorex1的解决方案应该做到这一点。
if($('#prevx a').css('display') === 'none') { $(this).parent().css('display','none'); }
从您的代码示例中,您已经拥有父级的ID,那么为什么不使用它呢?
此外,还有许多其他方法可以做到这一点(将下面的行包装在$(document).ready(function(){...})
)中以使它们工作:
使用:hidden
选择器 (这只会隐藏):
if ($('#prevx').is(':hidden')) $('#prevxa').hide();
使用三元运算符 (这将隐藏或显示父级)
var showOrHide = ($('#prevx').is(':hidden')) ? 'none' : ''; $('#prevxa').css('display', showOrHide);
JQuery使用了一些快捷方式:
-
:hidden
将查找:hidden
对象(或设置为display:none)。 它也不必在.is()
中。 您可以使用:$('div:hidden').show()
来显示所有隐藏的div。 -
:visible
会找到未隐藏的对象(display =”,’inline’,’block’等) -
$(element).hide()
将隐藏一个元素(将display设置为none) -
$(element).show()
将显示一个元素(清除显示值)