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()将显示一个元素(清除显示值)