jQuery和隐藏:在/:之后伪类

可能重复:
jQuery和伪类

我尝试通过jQuery以多种方式隐藏了:after伪类,但是没有成功,我发现了另一个解决方案,在我的div下添加了一个空div,其中包含:after content然后完全隐藏div所以它给出相同的效果。

然而,我只是好奇,如果有人设法找到一种方法隐藏:之后或:之前的东西。 这是我尝试过的不起作用。

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

只是为了给你上下文,我有一个div包含搜索表单等,当搜索处于活动状态时,我想在div下启用一个小箭头指示器,指向找到的项目列表(构建方式:after after CSS) )当没有找到任何东西,或者它默认为完整列表(因为没有找到),那么我想隐藏它。

你不能做这个。 最好的办法是在元素上使用一个类来切换伪元素的显示。

   

实例http://jsfiddle.net/4nbnh/

您可以动态添加

块来覆盖它。 给它一个id ,你可以在需要时删除它。

演示: http : //jsfiddle.net/ThinkingStiff/TRLY2/

脚本:

 $( '#hello' ).click( function () { if( $( '#pseudo' ).length ) { $( '#pseudo' ).remove(); } else { var css = ''; document.head.insertAdjacentHTML( 'beforeEnd', css ); }; } ); 

HTML:

 
hello

CSS:

 #hello::after { content: "goodbye"; }​ 

ThinkingStiff有一个很好的主意。

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

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

编辑:混淆名称