父div未使用parent()。show()方法显示

问题描述 投票:-1回答:1

我在编码中具有div的树形结构。单击“是”时,将显示child div;单击“ child”时,将显示Grand child div。如果单击“否”,则所有子代都将隐藏。在我的编码中工作正常,但是在再次尝试单击yes时隐藏了所有子级之后。.在使用children()。hide()隐藏div后,单击Yes的单击功能不起作用方法。为什么会这样呢?HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>

<form >
<div class="form-group" id="main">

<label class="lbl" for="parent" id="parent" > Click on Yes to see child . and click on No to hide all children. </label>
<div class="form-inline">
    <div class="form-check">
  <label class="form-check-label">
 <input type="radio" class="form-check-input" name="parent" value="Yes" id="parent-yes"> Yes </label>

</div>

<div class="form-check">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <label class="form-check-label">
 <input type="radio" class="form-check-input" name="parent" value="No" id="parent-no"> No  </label>

</div>
</div>
</div>
<div id="children" style="display:none;">
<div id="child1">
I am Child. Click on me to see Grand Child 

<div id="child2" style="display:none;">
Grand Child
</div> 

</div>

</div>


</div>
</form>
</body>
</html>

Javascript

$(document).ready(function () {
  $("#parent-yes").on("click", function () {
    $("div#children").show();
  });

  $("#child1").on("click", function () {
    $("div#child2").show();
  });

  $("#parent-no").on("click", function () {
    $("div#children").children().hide();
  });
});
javascript html parent
1个回答
0
投票

[未清除您的要求,但在示例代码中,选择器时设置了错误的ID。

并且当您单击否隐藏时,您将隐藏所有子项,应调用show()单击是$("div#children").children().show()

$(document).ready(function(){

        $("#parent-yes").on("click", function(){

            $("div#children").css("display", "block");
            $("div#children").children().show()

        });


        $("#child1").on("click", function(){

            $("div#child2").css("display", "block");

        });


            $("#parent-no").on("click", function(){

        $("div#children").children().hide()


        });
});
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>

<form >
<div class="form-group" id="main">

<label class="lbl" for="parent" id="parent" > Click on Yes to see child . and click on No to hide all children. </label>
<div class="form-inline">
    <div class="form-check">
  <label class="form-check-label">
 <input type="radio" class="form-check-input" name="parent" value="Yes" id="parent-yes"> Yes </label>

</div>

<div class="form-check">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <label class="form-check-label">
 <input type="radio" class="form-check-input" name="parent" value="No" id="parent-no"> No  </label>

</div>
</div>
</div>
<div id="children" style="display:none;">
<div id="child1">
I am Child. Click on me to see Grand Child 

<div id="child2" style="display:none;">
Grand Child
</div> 

</div>

</div>


</div>
</form>
</body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.