0

我有一个 HTML 表格

 <table id="sometable">
 <tr>
   <td>
       <table class="wTable">
            <tr>
                 <td>
                       <input type="radio" name="rdGroup" val="0" /> 
                 </td>
                 <td>
                       <input type="radio" name="rdGroup" val="5" />
                 </td>
                 <td>
                       <input type="radio" name="rdGroup" val="10" />
                 </td>
            </tr>
       </table>
   </td>
 </tr>
 </table>

在 TD 中使用表格的原因是出于蒙皮和定位的目的。当谈到 JQuery 时,我不是很好,我想知道是否有一种选择器技术可以在单击该单元格时访问该单选按钮。

例如,以前我的代码设置为(蒙皮之前):

 <table>
 <tr>header stuff</tr>
 <tr>
     <td>data</td>
     <td>data 2</td>
     <td><input type="radio" name="rdGroup" value="0"> No Warranty </br>
         <input type="radio" name="rdGroup" value="5"> 1 year Warranty </br>
         <input type="radio" name="rdGroup" value="10"> 2 year Warranty </br>
     </td>
     <td>data 3</td>
 </tr>
 <tr>footer stuff</tr>
 </table>

以上是原始的基本表结构。

 $("#dnn_ctr391_Account_ctl00_ctl01_grdItems tr:first,#dnn_ctr391_Account_ctl00_ctl01_grdItems tr:last").addClass("info");

上面添加了一个名为 info 的类到表的页眉和页脚(我不关心其中的任何数据)

从那里我创建了一个 td click 函数来处理数据:

 $("#dnn_ctr391_Account_ctl00_ctl01_grdItems tr:not(.info) td:nth-child(7)").click(function() { //DO CODE HERE });

在该点击功能中,我能够访问我需要的其他单元格的数据:

 var warval = 0;

 warval = $(this).closest("tr").find("input[type=radio]:checked").val();

当单击该单元格以获取单选按钮值时,我有没有办法使用相同样式的编码来获取访问权限,然后离开该表以返回它所在的 TD,然后获取访问权限到另一个 td 使用 $(this).closest("tr").find() 方法?

感谢您的任何帮助,您可以提供。

4

2 回答 2

1

我想你正在寻找这样的东西:

$('table#sometable table.wTable td').click(function () {
    var isChecked = $(this).children('input[type=radio]').val();
    //To get 'back to the tr'
    var $warval = $(this).closest("tr");
});
于 2012-12-10T16:00:39.187 回答
0

好的,根据您在评论中所说的,我希望这会有所帮助:

首先,我建议将表格标记更改为 div。这不是强制性的,但它会导致代码更清晰、更易于管理。可能是这样的:

<p>data 1</p>
<p>data 2</p>
<div>
    <input type="radio" name="rdGroup" id="rdGroup_0" value="0" />
    <label for="rdGroup_0">No Warranty</label>
</div>
<div>
    <input type="radio" name="rdGroup" id="rdGroup_5" value="5" />
    <label for="rdGroup_5">1 year Warranty</label>
</div>
<div>
    <input type="radio" name="rdGroup" id="rdGroup_10" value="10" />
    <label for="rdGroup_10">2 year Warranty</label>
</div>
<p>data 3</p>
<div class="footer">Footer</div>

你的 jQuery 钩子可以像这样简单:

$(function() {
    $('input[type=radio]').change(function() {
        // do whatever needs to be done here when the radio button value changes
        console.log("value '"+this.value+"' was selected for the warranty option");
    });
});​

如果您需要在使用存储在 DB 中的数据加载表单时设置相应的值,您可以使用此函数来完成(如果您已设置单选框 ID,如上所示):

var setWarrantyOption = function(value) {
    $('#rdGroup_' + value).click();
};

你可以在这里摆弄代码:http: //jsfiddle.net/gruese/fsj2v/

请告诉我这是否有帮助,或者我是否误解了您的问题。

于 2012-12-10T17:17:31.050 回答