-1

我有:

<div class="foo">
 <div class="bar">
 </div></div>

当“bar”被渲染时,我想检查“bar”是否在“foo”中,如果是,类名是什么。

什么不起作用:

<div class="foo">
 <div class="bar">
  <script type="text/javascript">
    $(this).load(function(){
      var parentClass= $(this).parent().attr('class');

    });
  </script>
 </div></div>

如果“bar”在“foo”中,我想隐藏“bar”,如果没有,显示它,所以我会:

if(parentClass.indexOf('foo') > -1) $(this).hide();
4

6 回答 6

0

尝试:

$('.foo').each(function () {
    if ($(this).find('div.bar').length) $(this).find('div.bar').hide();
});

jsFiddle 示例


这甚至可以在完全没有 JavaScript 的情况下完成(只有 CSS):

.foo .bar {
    display:none;
}

jsFiddle 示例

于 2013-08-19T18:44:58.317 回答
0
<script type="text/javascript">
   $(this).load(function(){
      if($(this).parent().is('.foo'))
      {
        $(this).hide()
      }
   });
</script>

顺便说一句,加载将适用于我相信的图像

于 2013-08-19T18:47:04.220 回答
0

divs 没有加载事件,并且无论如何,在这种情况下,this(我认为)是窗口。尝试选择.barDOM 就绪处理程序中的所有元素,然后执行您需要的任何操作。

$(document).ready(function() {
    $('.foo > .bar').hide();
});

http://jsfiddle.net/mSAMw/

于 2013-08-19T18:47:17.127 回答
0

我认为您将 document.ready 与 load 功能混淆了。此外,这是一种仅在 foo 中隐藏“bar”的简单方法。

$(document).ready(function () {

    if ($('.foo').find('.bar').length > 0) {
        $('.bar').hide();
    }

});
于 2013-08-19T18:47:33.560 回答
0

如果“bar”在“foo”中,我想隐藏“bar”:

只针对 .foo 的任何子 .bar ?

$('.foo .bar').hide();
于 2013-08-19T18:47:43.500 回答
0

尝试

if ($('.bar').parent().hasClass('foo')){     
$('.bar').hide();
}

演示

于 2013-08-19T18:51:12.373 回答