Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果父div hasClass()显示范围_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如果父div hasClass()显示范围

Javascript 如果父div hasClass()显示范围,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我用这个打自己的头。我不知道你在干什么。这很简单,但就是不起作用。当div有类时,我想显示span项。是的,基本的,但我不能让它工作 这是我的HTML,带有类addproduct <div id="ot-pr" class="status-publish has-post-thumbnail hentry add-product"> <span class="arrow">Testing</span> </div> 这是箭头的CSS .a

我用这个打自己的头。我不知道你在干什么。这很简单,但就是不起作用。当
div
类时,我想显示
span
项。是的,基本的,但我不能让它工作

这是我的HTML,带有类
addproduct

<div id="ot-pr" class="status-publish has-post-thumbnail hentry add-product">
    <span class="arrow">Testing</span>
</div>
这是
箭头的CSS

.arrow {
    display: none;
    width: 0; height: 0;
    line-height: 0;
    border-right: 16px solid transparent;
    border-top: 10px solid #c8c8c8;
    top: 60px;
    right: 0;
    position: absolute;
}
我尝试过什么,添加一个
find(span)
并添加
否则,如果

$(document).ready(function(){
    if ($("#ot-pr").hasClass('add-product')){
        $(".arrow").find('span').show();
    } else if { 
        $(".arrow").hide();
    }
});

分开或一起都不起作用。为什么这不起作用。这应该是基本权利?!我没有收到控制台错误和添加到页面中的
jQuery.js
。所有其他脚本都可以正常工作。

这里不需要JS,您可以单独在CSS中实现这一点:

.arrow{
显示:无;
/*以简化的CSS为例*/
}
div.add-product.arrow{
显示:块;
}

箭头1
箭头2
箭头3

我认为没有必要为此编写javascript,您可以仅通过CSS代码来管理它

.arrow {
    display: none;
    width: 0; height: 0;
    line-height: 0;
    border-right: 16px solid transparent;
    border-top: 10px solid #c8c8c8;
    top: 60px;
    right: 0;
    position: absolute;
}

div.add-product > span.arrow
{
   display: block !important;
}
将css替换为

.arrow {
    display: block;
    width: 100px; height: 100px;
    line-height: 0;
    border-right: 16px solid transparent;
    border-top: 10px solid #c8c8c8;
    top: 60px;
    right: 0;
    position: absolute;
}
只需添加显示:块和添加高度宽度

jQuery解决方案:

$(document).ready(function(){

  if($("#ot-pr").hasClass('add-product') == true){
    $(".arrow").css("display","block");
  }
  else { 
    $(".arrow").css("display","none");
    }
});
var$arrow=$('.arrow'),
$otPr=$(‘otPr’);
$otPr.hasClass('add-product')
? $arrow.show()
:$arrow.hide()
.arrow{
显示:块;
/* ... */
}

一些文本

为什么你认为它不管用?(您的第一次尝试看起来不错)使用CSS:
35;ot-pr.add-product.arrow{display:block;}
对我来说很好:仅CSS?不知道这是什么魔法…:D@tymeJV我发烧了,唯一的处方就是多用jQuery!
$(document).ready(function(){

  if($("#ot-pr").hasClass('add-product') == true){
    $(".arrow").css("display","block");
  }
  else { 
    $(".arrow").css("display","none");
    }
});