0

在我的网页中,有一个字段之前的suregery 并且具有某些元素。所以如果你检查以前的手术,那么只有以前的手术元素会显示,否则不会。以下是我的代码的一部分,但它无法正常运行。谁能告诉我

<!DOCTYPE html>
<html>
<head>

 <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />

 <script src="http://code.jquery.com/jquery-1.9.1.js"></script>



  <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  <script type="text/javascript" src="ajax/libs/jquery/1.6.2/jquery.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
  <script>
$(function(){
   $('.toggler').click(function(){
       if (this.checked) {
           $('div#name').slideDown();
       } else {
           $('div#name').slideUp();
       }
   });
})
  </script>
</head>
<body>
<table>
<tr>

                    <td  height="30">
                        <b>Previous Surgery</b>
                    </td>

                    <td>
<input type="checkbox" name="myCB" value="A" class="toggler" checked="checked" />
                    </td>
                </tr>
<div id="name">

<tr><td>Type of Surgery</td><td><input type="text"></td></tr>
<tr><td>Main Reason for surgery</td><td><input type="text"></td></tr>

<tr><td>Year</td><td><input type="text"></td></tr>
<tr><td>Reffered By</td><td><input type="text"></td></tr>
</div>

</table>
</body>
</html>
4

4 回答 4

2

原因是您的 HTML 无效。Div 不能是table.

修复您的 HTML:-

<table>
    <tr>
        <td height="30"> <b>Previous Surgery</b>

        </td>
        <td>
            <input type="checkbox" name="myCB" value="A" class="toggler" checked="checked" />
        </td>
    </tr>
</table>
<div id="name">
    <table>
        <tr>
            <td>Type of Surgery</td>
            <td>
                <input type="text">
            </td>
        </tr>
        <tr>
            <td>Main Reason for surgery</td>
            <td>
                <input type="text">
            </td>
        </tr>
        <tr>
            <td>Year</td>
            <td>
                <input type="text">
            </td>
        </tr>
        <tr>
            <td>Reffered By</td>
            <td>
                <input type="text">
            </td>
        </tr>
    </table>
</div>

JS

$(function () {
    $('.toggler').click(function () {
        $('#name').slideToggle();
    });
})

小提琴

如果您的元素有 id 则单独使用它,因为它应该是唯一的并且在性能方面成本效益较低。

来自文档

对于 id 选择器,jQuery 使用 JavaScript 函数 document.getElementById(),效率极高。当另一个选择器附加到 id 选择器时,例如 h2#pageTitle,jQuery 在将元素识别为匹配之前执行额外的检查。

所以#namediv#name.

感谢@Ian

于 2013-05-25T05:37:49.027 回答
0

像这样简单地尝试

$(function(){
$('.toggler').click(function(){
   $('div#name').toggle();       
 });
})

试试这个小提琴

并尝试将您的 div 放在桌子之外,正如我在小提琴中提到的那样

于 2013-05-25T05:35:02.843 回答
0

Working FIDDLE Demo

你的s<div id="name">之间不能有。tr之前关闭你的表div,然后重新打开它:

<table>
    <tr>
        <td height="30">
            <b>Previous Surgery</b>
        </td>
        <td>
            <input type="checkbox" name="myCB" value="A" class="toggler" checked="checked" />
        </td>
    </tr>
</table>


<div id="name">
    <table>
        <tr><td>Type of Surgery</td><td><input type="text"></td></tr>
        <tr><td>Main Reason for surgery</td><td><input type="text"></td></tr>
        <tr><td>Year</td><td><input type="text"></td></tr>
        <tr><td>Reffered By</td><td><input type="text"></td></tr>
    </table>
</div>
于 2013-05-25T05:40:13.033 回答
0

您的 div 元素放置错误。将 div 放在适当的位置 然后 SlideUp 和 SlideDown 方法应该可以工作。

于 2013-05-25T05:48:24.863 回答