0

我有这个 JS 函数:

 $("#ctl00_ContentPlaceHolder1_Table3 td").click(function () {

            var varTemp;
            var tr = $(this).parent();
            var temp = "";
            for (var i = 0; i < tr.children().length; i++) {
                if (tr.children().get(i) == this) {
                    var leColumn = i;
                    break;
                }
            }
            var tbody = tr.parent();
            for (var j = 0; j < tbody.children().length; j++) {
                if (tbody.children().get(j) == tr.get(0)) {
                    var leRow = j;
                    break;
                }
            }
            if (leColumn == 13) {
                var temp = $(this).text()
                var hwID = temp.split(" ");
                var hwIDFinal = parseInt(hwID[1]);
                PageMethods.getDetailHardware(HardwareID, hwIDFinal, CallSuccessUpdateHardware, CallFailedUpdateHardware);
                __doPostBack('#tblEquipementDetail', '')
            }
        });

它允许我在生成的表格上获取单击单元格的坐标。

多亏了这一点,我可以在之后调用 PageMethod 。

在此功能结束之前,我想做的是在单击单元格的当前行中查找任何选中的复选框。

我尝试了一些东西,但到目前为止没有成功。事实上,我能做的最好的事情就是从整个表格中选择所有选中的复选框。

我只想从当前行中选择那些。

这是生成表的代码。

<table id="ctl00_ContentPlaceHolder1_Table3" width="100%" style="font-family: 'Microsoft Sans Serif'; color: #000000">
            <tr>
                <td bgcolor="#000066" width="100%" style="color:white;">ID - Hardware</td>
                <td bgcolor="#000066" width="100%" style="color:white;">Label</td>
                <td bgcolor="#000066" width="100%" style="color:white;">Status</td>
                <td bgcolor="#000066" width="100%" style="color:white;">Comment</td>
                <td bgcolor="#000066" width="100%" style="color:white;">Loan Start Date</td>
                <td bgcolor="#000066" width="100%" style="color:white;">Loan End Date</td>
                <td bgcolor="#000066" width="100%" style="color:white;">Assigned by</td>
                <td bgcolor="#000066" width="100%" style="color:white;">Assignment Date</td>
                <td bgcolor="#000066" width="100%" style="color:white;">Revocation Date</td>
                <td bgcolor="#000066" width="100%" style="color:white;">Package</td>
                <td bgcolor="#000066" width="100%" style="color:white;">USBPhone</td>
                <td bgcolor="#000066" width="100%" style="color:white;">USBKeypad</td>
                <td bgcolor="#000066" width="100%" style="color:white;">ScreenPrivacy</td>
            </tr>
            <tr>
                <td>4477</td>
                <td>HH1234</td>
                <td>Affected</td>
                <td></td>
                <td></td>
                <td></td>
                <td>XXXXXXX</td>
                <td>19/08/2008</td>
                <td> / </td>
                <td><input name="ctl00$ContentPlaceHolder1$ctl184" type="checkbox" /></td>
                <td><input name="ctl00$ContentPlaceHolder1$ctl186" type="checkbox" /></td>
                <td><input name="ctl00$ContentPlaceHolder1$ctl188" type="checkbox" /></td>
                <td><input name="ctl00$ContentPlaceHolder1$ctl190" type="checkbox" /></td>
                <td><a onclick="DetailHardware(1234);return false;" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$ctl192','')" style="font-size:9pt;">Detail 5014</a></td>
            </tr>
            <tr>
                <td>3209</td>
                <td>XS548</td>
                <td>Ready</td>

ETC...

欢迎任何提示,在此先感谢:)

4

2 回答 2

0

您已经抓住了trclicked 的父级td,所以只需在此搜索:

var row_checkboxes = tr.find('input[type=checkbox]');

此外,就效率而言,与其绑定多个事件,每个事件一个td,不如将事件委托给表。效果将是相同的。

 $("#ctl00_ContentPlaceHolder1_Table3").on('click', 'td', function () {...
于 2012-07-16T12:04:13.387 回答
0

由于您已找到表的根,因此您可以搜索表中的所有复选框。就个人而言,如果您使用复选框,它们将具有意义并且同时是动态的。考虑到这一点,某些复选框集应该有一个特定的名称。

var root = "some string";
var chkBoxes = $(root).find("input:checkbox")
... do whatever you want with chkBoxes being your reference.
于 2012-07-16T12:05:56.540 回答