javascript 隐藏不包含特定文本的父元素

lqfhib0f  于 2023-06-04  发布在  Java
关注(0)|答案(2)|浏览(309)

我试图隐藏父元素使用ID的孩子作为选择器;如果它们不包含特定文本。在这种情况下*。必须是这样,必须使用jQuery。
到目前为止,我有这个:
HTML

<div>
    <label>
        First name <font color="red">*</font>
        <input type="text" id="guest_first_name">
    </label>
</div>

</br>

<div>
    <label>
        Last name 
        <input type="text" id="guest_last_name">
    </label>
</div>

jQuery

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>

<script>
 $(document).ready(function() {

    let checkthis = $("#guest_first_name, #guest_last_name").parent();  
    var removewithout = "*";
    checkthis.not(removewithout).hide();

 })

</script>

正在努力检查不包含文本的元素,然后隐藏。试图用文本Last name隐藏<label>,因为它不包含*。我希望这是清楚的。任何帮助都很感激。
谢谢

t2a7ltrp

t2a7ltrp1#

jquery中的**.not()**方法和javascript中的.not选择器只接受对象、选择器和函数作为参数。但是你要为此传递一个字符:
以下是可以帮助您的更简单的代码:
HTML:

<div>
     <label>
        First name <font color="red">*</font>
        <input type="text" id="guest_first_name">
    </label>
  </div>

 </br>

 <div>
    <label>
        Last name 
        <input type="text" id="guest_last_name">
    </label>
 </div>

JQUERY:

$(document).ready(function() {
    let checkthis = $("input['text']").parent();
    var removewithout = /\*/;
    checkthis.not((i, e) => removewithout.test(e.innerHTML)).hide();
});
<div>
    <label>
        First name <font color="red">*</font>
        <input type="text" id="guest_first_name">
    </label>
</div>

<br>

<div>
    <label>
        Last name 
        <input type="text" id="guest_last_name">
    </label>
</div>
0s0u357o

0s0u357o2#

.not()方法接受选择器、jQuery对象和函数。

$(document).ready(function() {

  let checkthis = $("#guest_first_name, #guest_last_name").parent();
  var removewithout = /\*/;
  checkthis.not((i, e) => removewithout.test(e.innerHTML)).hide();

})

参考:

  • jQuery .not(function)

相关问题