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>

等...

どんなヒントでも大歓迎です、事前に感謝します:)

4

2 に答える 2

0

すでに clicked のtr親を取得しているtdので、この中を検索するだけです:

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

また、効率の観点から、複数のイベントを 1 つずつバインドするのではなく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 に答える