jQuery:隐藏 <label> 中的*仅*文本

标签 jquery html dom hide

我有以下从 WordPress 插件输出的标记

<div class="emaillist">
    <form action="#" method="post">
        <div class="es-field-wrap">
            <label>Name*<br>
                <input type="text" name="name" placeholder="Name" value="" required="" class="form-control">
            </label>
        </div>
        <div class="es-field-wrap">
            <label>Email*<br>
            <input class="form-control" type="email" name="email" value="" placeholder="Email" required=""></label>
        </div>                              

        <input type="submit" name="submit" value="Subscribe">
    </form>
</div>

我试图隐藏 NameEmail <label> 内的文本像这样的字段:

$('.form-blog-notify label').text('')

但是当我这样做时,它会删除 input还来自 DOM 的字段

有没有办法可以隐藏文本,同时保留文本字段?

最佳答案

您需要获取第一个文本节点,然后将其删除。您可以在哪里使用 contents()方法获取所有子节点,包括文本节点。

$('label').each(function() {
  $(this).contents().first().remove()
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="emaillist">
  <form action="#" method="post">
    <div class="es-field-wrap">
      <label>Name*<br>
                <input type="text" name="name" placeholder="Name" value="" required="" class="form-control">
            </label>
    </div>
    <div class="es-field-wrap">
      <label>Email*<br>
            <input class="form-control" type="email" name="email" value="" placeholder="Email" required=""></label>
    </div>

    <input type="submit" name="submit" value="Subscribe">
  </form>
</div>

关于jQuery:隐藏 <label> 中的*仅*文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60495367/

相关文章:

javascript - 我如何让一个 div 出现在它的容器外面,并滚动,同时保持溢出在它的容器上

单击并按住时,具有平滑主题的 jQuery UI 按钮会增长

html - 如何显示没有下划线的超链接?

javascript - 无法让简单的appendChild函数工作

javascript - 防止浏览器重新加载按钮单击之前的卸载事件

javascript - 如何将一个很长的列变成多个较短的列?

javascript - JS 验证问题

jquery - Chrome 在使用 Flexie 时无法正确显示 div,(IE 工作正常)

javascript - 表中的 jQuery slideDown 和 SlideUp 看起来不正确

javascript - HTML/jQuery 保存订单