Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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 仅当存在子菜单时显示图标_Javascript_Android_Jquery_Html_Css - Fatal编程技术网

Javascript 仅当存在子菜单时显示图标

Javascript 仅当存在子菜单时显示图标,javascript,android,jquery,html,css,Javascript,Android,Jquery,Html,Css,在我的平板电脑导航中,有一些“加号”图标用于切换子菜单。我只想在子菜单存在时显示加号图标 我已经用以下代码尝试过: if($('.tablet-li-item').find('.tablet-sub-menu').length !== 0) { $(this).children('.open-btn').css('display', 'block'); } HTML: 与addClass不同,show也是一个可能的解决方案。我猜您的错误在于$this,它

在我的平板电脑导航中,有一些“加号”图标用于切换子菜单。我只想在子菜单存在时显示加号图标

我已经用以下代码尝试过:

        if($('.tablet-li-item').find('.tablet-sub-menu').length !== 0) {
        $(this).children('.open-btn').css('display', 'block');
    }
HTML:


与addClass不同,show也是一个可能的解决方案。

我猜您的错误在于$this,它超出了范围

您可以尝试以下方法:

$(document).ready(function(){
    $('.tablet-li-item').each(function(){
        if( $(this).find('.tablet-sub-menu').length > 0 ){
            $(this).children('.open-btn').css('visibility', 'visible');
        }
    });
});

美元的范围是什么。我们需要更多的代码来帮助您。请同时粘贴您的html设置。我添加了HTMLTanks。但是在您的编辑中仍然没有$this的范围。您的if语句没有将jQuery放在一个范围内,在这个范围内它指向任何东西。感谢您的回答,不幸的是按钮没有显示,我真的不知道为什么^^^您检查了元素以查看是否有任何css阻止它们显示吗?是的,我检查过,“打开btn”的默认值是“可见性:隐藏”,这应该被jquery函数覆盖,但它不会覆盖,这就解释了。设置display:block,只要它们具有可见性:hidden就不会做任何事情。然后需要将“可见性”设置为“可见性:可见”。是的,现在我也明白了。谢谢你的帮助!:D
$('.tablet-li-item').has('ul').children('.open-btn').addClass('active');
$(document).ready(function(){
    $('.tablet-li-item').each(function(){
        if( $(this).find('.tablet-sub-menu').length > 0 ){
            $(this).children('.open-btn').css('visibility', 'visible');
        }
    });
});