javascript - jQuery - 是 :visible/hidden not working?

标签 javascript jquery html

我正在尝试使用一个按钮并根据其当前状态使字符串删除字段隐藏和显示。最初,它将被隐藏(使用隐藏的 HTML 属性),单击按钮时它应该出现,再次单击它应该消失。下面的代码我错了什么?

$(document).ready(function () {
      
   $(".addlink_manage").click(function () {
            console.log('click working');

            //var toggle_x = $(".remove_field")
            

            if ($(".remove_field").is(":hidden")) {

                $(".remove_field").is(":visible");
            }

            if ($(".remove_field").is(":visible")) {

            $(".remove_field").is(":hidden");
            }

            
        });

});
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
   

</head>
<body>
  <div class="addlink_dynlist"><li><a href="#">Name</a> <a href="#" class="remove_field" hidden> remove field</a></li></div>
 
      <script
      src="https://code.jquery.com/jquery-3.3.1.min.js"
      integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
      crossorigin="anonymous"></script>

<button class = "addlink_manage"> click me</button>
      
</body>

</html>

最佳答案

$(".remove_field").is(":visible"); 仅返回 bool 值,而不是实际隐藏/显示该元素。

只需对当前 Prop 执行否定 hidden

$removeField.prop('hidden', !$removeField.is(":hidden"));

$(document).ready(function() {
  $(".addlink_manage").click(function() {
    console.log('click working');
    var $removeField = $(".remove_field");
    $removeField.prop('hidden', !$removeField.is(":hidden"));
  });
});
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>


</head>

<body>
  <div class="addlink_dynlist">
    <li><a href="#">Name</a> <a href="#" class="remove_field" hidden> remove field</a></li>
  </div>

  <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

  <button class="addlink_manage"> click me</button>

</body>

</html>

关于javascript - jQuery - 是 :visible/hidden not working?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49184036/

相关文章:

javascript - 使用 ajax 和 php 执行 Linux shell 命令

javascript - 我如何创建一个带有图像的模态,模态的链接是图像本身(在较小的版本上))

javascript - 固定在动画滚动上的双菜单

javascript - Angular 自定义指令基本输入过滤器无法正常工作,仅显示第一个匹配实例

jquery - 使用 jquery 提交的浏览器

javascript - 使用 sibling 之间的数据隐藏子组件

javascript - 打开时 JQuery Accordion 样式发生变化

javascript - 在页面加载时阻止 htaccess 弹出窗口的 div 加载

html - 让图像以移动页面 View 为中心

javascript - Javascript 中的 ProcessMessages()