2012-07-16 17 views
0

我有這個JS功能:搜索從生成的HTML表中的特定行,在Javascript

$("#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 ...

任何暗示是值得歡迎的,在此先感謝:)

回答

0

你已經搶tr父點擊td的,所以只在此搜索:

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

另外,爲了提高效率,不是綁定多個事件,而是每個td一個,最好將事件委託給桌子。效果將是相同的。

$("#ctl00_ContentPlaceHolder1_Table3").on('click', 'td', function() {... 
+0

工程就像一個魅力!然後我循環我的數組搜索複選框。非常感謝 ! – Jan 2012-07-16 12:43:38

0

由於您具有所在表的根目錄,因此您可以對錶格中的所有複選框執行搜索。就個人而言,如果您使用複選框,它們將具有意義並且同時具有動態性。考慮到這一點,某些複選框應該有一個特定的NAME。

var root = "some string"; 
var chkBoxes = $(root).find("input:checkbox") 
... do whatever you want with chkBoxes being your reference.