javascript - jquery .find/.closest/.next

标签 javascript jquery html

我有一个表格,其中一行有 4 个单元格,如下所示

<table class="Header3" style="width: 100%;">
    <tr>
        <td id="RC" class="contLabel" style="width: 228px">
            <div class="abc">Related Companies</div>
        </td>
        <td style="width: 101px">
            <asp:checkbox runat="server" id="RCR" type="checkbox" ENABLED="false"/>
        </td>
        <td style="width: 116px">
            <asp:checkbox runat="server" id="RCP" type="checkbox" ENABLED="false"/>
        </td>
        <td id="RC2" class="contLabel">Are related companies used to improve results?</td>
    </tr>

在表格下方,我在 div 内有一个文本框,代码如下:

<div id="RCN" class="panel2" style="width: 100%;">
    <div class="ContentTB">
        <asp:TextBox  id="RCNT" runat="server" TextMode="MultiLine" width="99.5%" Enabled="false"></asp:TextBox>
    </div>
</div>

我想要实现的是,当我单击第一个单元格(#RC)或第四个单元格(#RC2)时,表格下方的文本框就会切换,目前我的 jquery 代码是

$(function() {
    $('#RC,#RC2').click(function(e) {
        $('#RCN').toggle('fast');
    });
})

并且工作正常。

现在的问题是我有 20 个表和 20 个文本框,并且我不想编写 20 行 jquery 代码。 我正在尝试类似的事情

$('.contLabel').click(function(e) {
    $(this).next('.panel2').toggle('fast');
});

但是它不起作用。我想知道正确的代码是什么?

我没有将它们全部放在一张表中的原因是切换动画看起来不太好。

感谢您的建议!

最佳答案

您想要使用 closest() 返回到 table,然后使用 next() 获取带有其中的文本区域。

$('.contLabel').on('click', function (e) {
  var $td = $(this);
  $td.closest('table').next('.panel2').toggle('fast');
});

关于javascript - jquery .find/.closest/.next,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23199189/

相关文章:

javascript - 事件状态菜单 JavaScript

javascript - 匹配伪元素内容属性的正则表达式示例

Javascript - 无法阻止链接加载页面

css - 元标记 "viewport"内容 ="width=device-width"不工作

javascript - 如何使用 Javascript 保存 CSS 更改?

javascript - 动态图像放置帮助 - CSS/javascript/jquery?

javascript - 我如何创建一个带有滚动的 html 表格

javascript - 获取 URL 字符串形式的报告参数

php - 使用 Jquery/Bootstrap 删除标签标签/添加输入文本框

javascript - 如何使用 CSS 使 Angular Material slider 垂直?