5

我正在尝试编写一个 if 语句,如果其中一个元素的显示设置为“无”,我希望父元素也显示“无”...

这是我正在尝试的代码,它不起作用......

/* 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');
}

标记如下所示:

<ul>
   <li class="navnext" id="nextxa">
      <a id="nextx" href="#"><img src="/images/next.png"/></a>
   </li>

   <li class="navprev" id="prevxa">
      <a id="prevx" href="#" style="display: none;"><img src="/images/previous.png"/></a>
   </li>
</ul>
4

5 回答 5

9

试试这个:

if($('#prevx').css('display') == 'none') {
    $('#prevx').parent().css('display','none');
}

更好的是:

$('#prevx').parent().css('display',$('#prevx').css('display'));

这个例子对我有用。要隐藏/显示父级,请在无和内联之间切换子级的显示:

<ul>
   <li class="navnext" id="nextxa">
      <a id="nextx" href="#"><img src="/images/next.png"/></a>
   </li>

   <li class="navprev" id="prevxa">
      <a id="prevx" href="#" style="display: inline;"><img src="/images/previous.png"/></a>
   </li>
</ul>

<script>
if ($('#prevx').css('display') == 'none') 
    $('#prevx').parent().css('display', 'none');
else
    $('#prevx').parent().css('display', 'list-item');
</script>
于 2009-12-16T04:22:32.300 回答
0

.attr 用于 id、title、alt、src 等标签。

.css 用于 CSS 样式,例如显示、字体、文本装饰:闪烁等。

Pygorex1 的解决方案应该可以解决问题。

于 2009-12-16T04:24:56.040 回答
0
if($('#prevx a').css('display') === 'none') {
    $(this).parent().css('display','none');
}
于 2009-12-16T04:25:10.597 回答
0

从您的代码示例中,您已经有了父级的 ID,那么为什么不使用它呢?

此外,还有许多其他方法可以做到这一点(将下面的行包含在 a 中$(document).ready(function(){...}))以使其工作:

使用:hidden选择器(这只会隐藏):

if ($('#prevx').is(':hidden')) $('#prevxa').hide();

使用三元运算符(这将隐藏或显示父级)

var showOrHide = ($('#prevx').is(':hidden')) ? 'none' : '';
$('#prevxa').css('display', showOrHide);

JQuery 使用了一些快捷方式:

  • :hidden将找到隐藏的对象(或设置为显示:无)。它不必在.is()其中。您可以使用它:$('div:hidden').show()显示所有隐藏的 div。
  • :visible将找到未隐藏的对象(display = ''、'inline'、'block' 等)
  • $(element).hide()将隐藏一个元素(将显示设置为无)
  • $(element).show()将显示一个元素(清除显示值)
于 2009-12-16T06:21:54.590 回答
0

试试这个

$('#child_id').parent().css('display','none');
于 2019-07-20T05:10:56.363 回答