隐藏元素如果另一个元素包含字母,则显示其他元素

Hide Element If Another Element contains letters, show otherwise

本文关键字:元素 显示 其他 包含字 如果 另一个 隐藏      更新时间:2023-09-26

我遇到了一个问题,在一些javascript中,我有一个正则表达式,用于测试元素id的字母,如果它有字母,它隐藏了另一个元素id。这项工作,我的问题是它显示它隐藏的元素,当id确实是空的。然而,问题是,这个id是使用令牌填充的。你可以看到下面的代码,它有点草率,因为我只是添加了临时ID,试图让它工作。

<script type="text/javascript">
$(document).ready(function(){  
      var regex = /^[A-Za-z]+$/;
      if (!regex.test($("#signinwelcome").val()))
      {$("#signinlink").hide();}
      else{$("#signinlink").show();}
      });
</script>
<div id="headerwelcome"><div id="signinlink"><a href="default.aspx?Page=Logon" >SIGN IN / LOG OUT</a></div>
            WELCOME <a href="Default.aspx?Page=My Account Profile"><div id="signinwelcome" style="display: inline;">@@FirstName</div></a>!</div>

所以在网页上如果你没有登录@@FirstName是空白的,不显示,它就是空的。当您登录时,#signinwelcome将填充您的姓名,然后应该隐藏SIGN in/LOG OUT,当您注销时,SIGN/LOG OUT应该重新出现。事实并非如此,它仍然隐藏着。

$("#signinwelcome").text()将返回div元素内的文本。.val()用于表单元素,例如文本、单选、复选框等。


另外,看看toggle方法。它接受一个参数来表示开关开关。您的代码可以重写为:

$(document).ready(function(){  
  var regex = /^[A-Za-z]+$/;
  var is_signed_in = regex.test($("#signinwelcome").text());
  $("#signinlink").toggle(is_signed_in);
});