Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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
jQuery和隐藏:after/:before伪类_Jquery_Css - Fatal编程技术网

jQuery和隐藏:after/:before伪类

jQuery和隐藏:after/:before伪类,jquery,css,Jquery,Css,可能重复: 我尝试通过jQuery以多种方式隐藏:after伪类,但没有成功,我找到了另一种解决方案,在我的div下添加了一种空div,其中包含:after内容,然后完全隐藏div,以获得相同的效果 然而,我只是好奇是否有人设法找到了一种方法来隐藏:之后或:之前的东西。这是我试过但没用的 $('.search_box:after').hide(); $('.search_box:after').css('display', 'none'); 为了给您提供上下文,我有一个包含搜索表单等的div

可能重复:

我尝试通过jQuery以多种方式隐藏:after伪类,但没有成功,我找到了另一种解决方案,在我的div下添加了一种空div,其中包含:after内容,然后完全隐藏div,以获得相同的效果

然而,我只是好奇是否有人设法找到了一种方法来隐藏:之后或:之前的东西。这是我试过但没用的

$('.search_box:after').hide();
$('.search_box:after').css('display', 'none');

为了给您提供上下文,我有一个包含搜索表单等的div,当搜索处于活动状态时,我希望在div下启用一个小箭头指示器,指向找到的项目列表(使用:after via CSS构建),当未找到任何内容时,或者默认为完整列表(因为未找到任何内容)那我想把它藏起来

您可以动态添加
块来覆盖它。给它一个
id
,您可以在需要时删除它

演示:

脚本:

$('#hello')。单击(函数(){
if($('#pseudo').length){
$('#pseudo')。删除();
}否则{
var css='#hello::在{display:none!important;}'之后;
document.head.insertAdjacentHTML('beforeEnd',css);
};
} );
​HTML:

你好​ CSS:

#你好::之后{
内容:“再见”;
}​

ThinkingStiff有一个很好的主意

您还可以为搜索框添加和删除类,并且只使用after标记

类似于
.hide:after{display:none}
.show:after{/*normalcss*/}
。然后用javascript交换这些类


编辑:混淆名称

您不能这样做。最好是在元素上使用类来切换伪元素的显示

<style>
    .search_box:after {
        content: 'foo';
    }
    .search_box.hidden:after {
        display: none;
    }
</style>
<script>
    //Instead of these 2 lines
    //$('.search_box:after').hide();
    //$('.search_box:after').css('display', 'none');

    //Use
    $('.search_box').addClass('hidden');
</script>

.搜索框:在{
内容:“foo”;
}
.search_框。隐藏:在{
显示:无;
}
//而不是这两行
//$('.search_box:after').hide();
//$('.search_box:after').css('display','none');
//使用
$('.search_box').addClass('hidden');

Live example-

请看这里:最后,我在搜索框的正下方使用了一个div,高度为0,宽度与搜索框相同,它有after样式,我将其隐藏/取消隐藏,而不是搜索框,但是TJ VanToll下面的解决方案也很有效。这是最好的选择,就像其他方法一样,你可以改变内容和颜色,但不能改变可见性。谢谢你的回答,这是我在互联网上找到的最好的解决方案。。。