我想在标签标签中隐藏文本,而不是输入文本。我想这样做而不更改html结构。我想使用css3甚至jquery来实现这一点
这是html代码:
<div class="es-field-wrap">
<label>Email*<br><input class="es_required_field es_txt_email" type="email" name="email" value="" placeholder="Your email address" required=""></label>
</div>
我尝试过但是没有运气
.es-field-wrap+label { display:none; }
.es-field-wrap > label { display: none; }
答案 0 :(得分:5)
尝试一下
电子邮件*
<div class="es-field-wrap">
<label>Email*<br><input class="es_required_field es_txt_email" type="email" name="email" value="" placeholder="Your email address" required=""></label>
</div>
//split text to <br> tag
var t = $(".es-field-wrap > label").html().split("<br>");
//set secont part of test in label
$(".es-field-wrap > label").html(t[1]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="es-field-wrap">
<label>Email*<br><input class="es_required_field es_txt_email" type="email" name="email" value="" placeholder="Your email address" required=""></label>
</div>
答案 1 :(得分:2)
带有visibility: visible
的子元素在带有visibility: hidden
的父元素中仍然可见。或者,您可以制作标签color: transparent
,但如果用户通过选择突出显示它,则可以将其显示出来。
BTW .es-field-wrap+label
必须具有.es-field-wrap
之外的标签才能正常工作。
两种技术都在演示1中。
缺少jQuery。 JavaScript更强大。
$('.es-field-wrap label')[0]...
上面的代码是一个jQuery对象,已被取消引用到普通JavaScript对象中(请注意[0]
)。
.childNodes[0].remove()
.childNodes
是一个普通的JavaScript属性,不仅可以获取标签的子元素,还可以获取文本。 Email*
实际上是标签的第一个子节点,因此.childNodes[0]
。 .remove()
方法非常不言自明。
有关此jQuery / JavaScript声明,请参见演示2。
.es-field-wrap label {
visibility: hidden
}
.es-field-wrap label input {
visibility: visible
}
.es-field-wrapA label {
color: transparent;
}
<div class="es-field-wrap">
<label>Email*<br><input class="es_required_field es_txt_email" type="email" name="email" value="" placeholder="Your email address" required=""></label>
</div>
<div class="es-field-wrapA">
<label>Email*<br><input class="es_required_field es_txt_email" type="email" name="email" value="" placeholder="Your email address" required=""></label>
</div>
$('.es-field-wrap label')[0].childNodes[0].remove();
<div class="es-field-wrap">
<label>Email*<br><input class="es_required_field es_txt_email" type="email" name="email" value="" placeholder="Your email address" required=""></label>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
答案 2 :(得分:0)
您可以使用CSS opacity 属性:
label {
opacity: 0.5;
}
在w3网站上查看有关该属性的更多信息:https://www.w3schools.com/cssref/css3_pr_opacity.asp
答案 3 :(得分:0)
尝试
<html lang="en">
<head>
<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
</head>
<body>
<div class="es-field-wrap">
<label>Email*<br><input class="es_required_field es_txt_email" type="email" name="email" value="" placeholder="Your email address" required=""></label>
</div>
</body>
</html>
<script>
$(document).ready(function () {
//split text to <br> tag
var t = $(".es-field-wrap > label").html().split("<br>");
//set secont part of test in label
$(".es-field-wrap > label").html(t[1]);
});
</script>
答案 4 :(得分:0)
.es-field-wrap label {
font-size: 0px;
}