首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击按钮时显示和隐藏带有星号的文本

问单击按钮时显示和隐藏带有星号的文本
EN

Stack Overflow用户
提问于 2021-08-30 16:38:15
回答 5查看 94关注 0票数 1

我有一个数字为init的段落标签。单击旁边的按钮后,我想用星号/圆形圆圈替换数字。此外,我附上了一个截图,我想应用这个概念(在单击眼睛图标时,患者Id应替换为圆形圆圈,反之亦然)。附上我尝试过的代码。你的解决方案对我学习东西非常重要。提亚

enter image description here

​

代码语言:javascript
复制
 $('.hide-id').on('click', function () {
   $('.patient-id-content').attr('type', 'password');
 });
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

 <div class="container">
    <p>
      <span class="patient-id-content" type="text">34324345</span>
      <button class="hide-id">
        Hide
      </button>
    </p>
  </div>

​

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2021-08-30 17:01:18

这就是你所需要的。

代码语言:javascript
复制
 $(".hide-id").on("click", function () {
      var span = $(".patient-id-content");
      var spanText = span.text();
      if (!spanText.indexOf("*")) {
        $(".patient-id-content").text(span.attr("data-oldText"));
        return;
      }

      var starText = "";
      for (let i = 0; i < spanText.length; i++) starText += "*";
      $(".patient-id-content")
        .attr("data-oldText", spanText)
        .text(starText);
    });

jsfiddle上的工作示例:https://jsfiddle.net/ynojkf0q/

票数 1
EN

Stack Overflow用户

发布于 2021-08-30 16:58:48

所以你从OP得到的jQuery代码是不正确的。您已经拥有了想要作为span中的密码的内容,并且正在对其应用类型属性。

如果检查MDN Docs,就会发现跨度没有type属性,因为跨度只支持Global Attributes。input元素同时使用type: text和type: password,请参阅文档here。

但是,如果您希望使用跨度作为元素,则可以将jQuery事件处理程序更改为以下内容:.toggleClass('hidden');,并使用display: none;属性创建一个隐藏的CSS类

​

代码语言:javascript
复制
$('.hide-id').on('click', function () {
   $('.patient-id-content').toggleClass('hidden');
 });
代码语言:javascript
复制
.hidden { display: none;}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
    <p>
      <input class="patient-id-content" type="text" value="34324345">      
      <button class="hide-id">
        Hide
      </button>
    </p>
  </div>

​

票数 1
EN

Stack Overflow用户

发布于 2021-08-30 17:06:52

这是您想要的功能的简单解决方案。它需要更多的样式来让它看起来与你上面提供的例子一模一样。

HTML

代码语言:javascript
复制
 <div class="container">
    <p>
      <input class="patient-id-content" type="password" value="34324345">
      <button id="pass-toggle" class="hide-id" onclick="toggleShowPassword()">
        Show
      </button>
    </p>
  </div>

JS

代码语言:javascript
复制
let passwordVisible = false;
 
 function toggleShowPassword() {
    let inputType = 'password';
  passwordVisible = !passwordVisible;
  
  
  if (passwordVisible) {
    inputType = 'text';
    $('#pass-toggle').addClass( "show-id" ).text( 'Hide' );
  } else {
     $('#pass-toggle').removeClass( "show-id" ).text( 'Show' );
  }
  
  $('.patient-id-content').attr('type', inputType);

CSS

代码语言:javascript
复制
.patient-id-content {
  border: 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68987536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档