Javascript 如何使用jQuery删除焦点上的输入占位符文本?
这是我的HTML:Javascript 如何使用jQuery删除焦点上的输入占位符文本?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这是我的HTML: <div class="testimonial-form__field testimonial-form__company-name"> <span class="wpcf7-form-control-wrap company-name"> <input type="text" name="company-name"> </span> ::after </div> 这就是我对
<div class="testimonial-form__field testimonial-form__company-name">
<span class="wpcf7-form-control-wrap company-name">
<input type="text" name="company-name">
</span>
::after
</div>
这就是我对JS的了解程度。我知道我需要从选择输入开始,然后在伪元素上应用隐藏来结束。我只是不知道如何编写该函数。我建议您只需在input focus中向.essential-form\uuu company-name div元素添加一个类即可。发生这种情况时,只需添加一个CSS类来隐藏::after psuedo元素 退房:
.推荐表公司名称::之后{
内容:“没有重点”;
显示:块;
}
.ESTIONAL-form_u_company-name.active::after{
显示:无;
}
输入:
$('.commential-form__company-name input')。焦点(函数(){
$(this).closest('.commential-form__-company-name').addClass('active');
}).blur(函数(){
$(this).closest('.commential-form__-company-name').removeClass('active');
});
伪元素::在可能从css生成
之后,您应该研究css,而不是JQUERI,我已经尝试过了。据我所知,无法在输入上使用::focus状态,也无法使用CSS遍历DOM,因为父选择器不存在。您可以侦听输入上的“focus”事件,遍历父级并切换与某些CSS对应的类,如。someClass:after{content:none;}
这正是我想要的。谢谢
$('.testimonial-form__field input').css( "display", "none" );
<style>
.testimonial-form__company-name::after {
content: "not focused";
display: block;
}
.testimonial-form__company-name.active::after {
display: none;
}
</style>
<div class="testimonial-form__field testimonial-form__company-name">
<span class="wpcf7-form-control-wrap company-name">
Input: <input type="text" name="company-name">
</span>
</div>
<script>
$('.testimonial-form__company-name input').focus(function () {
$(this).closest('.testimonial-form__company-name').addClass('active');
}).blur(function () {
$(this).closest('.testimonial-form__company-name').removeClass('active');
});
</script>