【问题标题】:How to Display hidden <tr> closest to selected radiobutton's <tr>如何显示最靠近所选单选按钮的 <tr> 的隐藏 <tr>
【发布时间】:2012-02-13 22:23:04
【问题描述】:

我在一页上有 3 个表格。它们每个都包含两个表格行。

第一个 &lt;tr&gt; 包含一个 RadioButton。第二个&lt;tr&gt; 设置为显示:无。我需要第二个 &lt;tr&gt; 来显示该特定表中的 RadioButton 何时被选中。

我的 HTML:

<table class="tableClass" style="width: 98%">   
    <tr>
       <td>
           <input type="radio" id="rbResource" onclick="radio_Click()" class="radioButton"       runat="server" />
       </td>  
    </tr>
    <tr class="displaySelection" style="display: none">
       <td>
           <span>Test</span>
       </td>
    </tr>
</table>

我不确定如何在radio_Click() 函数中形成我的jQuery 以获得我正在寻找的东西。到目前为止,我尝试过的所有内容都会显示每个表的所有三个 &lt;tr&gt;,无论选择了哪个 Radiobutton。

【问题讨论】:

    标签: jquery asp.net html-table tablerow


    【解决方案1】:

    如果我理解正确,您每次只需显示 1 行,具体取决于按下的单选按钮。首先,您应该使用 name="rbResource"(而不是 id)将单选按钮组合在一起。然后你可以使用这样的东西:

    $(".radioButton").click( function(evt) {
        $(".radioButton").each( function( index, obj ) {
            var checked = $(obj).attr('checked')==true;
            var row = $(obj).closest('tr').next();
            if ( checked ) row.show();
            else row.hide();
        });
    });
    

    【讨论】:

    • 这并不完全有效。调试它显示 var checked = $(obj).attr('checked') == 'checked';每次都返回 false。
    • 我将 == 'checked' 部分更改为 == true 并且效果很好。谢谢!
    【解决方案2】:
    $('input:radio').on('click', function(){
       $(this).closest('tr').next().show();
    });
    

    或,

    $('input:radio').click(function(){
       $(this).closest('tr').next('tr').show();
    });
    

    【讨论】:

    • @Melanie 删除 onclick() 函数
    • 这行得通,但问题是如果我选择一个单选按钮,然后选择另一个,那么两行仍然显示。将尝试调整 xpapad 的代码以适应这种情况。
    猜你喜欢
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多