2012-06-30 66 views
0

我正在開發一個發票程序,我試圖選擇使用jquery的單行,但我無法準確弄清楚如何選擇一行並提取其下面的內容是我的代碼!請指教jQuery Table selected row

注:我只是增加兩行,但將有超過100行,所以我認爲它不可能給ID對每個TD,並使用該ID

<table class="ProductSearch"> 
     <tr> 
     <td>ID</td> 
     <td>DESCRIPTION</td> 
     <td>Qty</td> 
     <td>PRICE</td> 
     <td></td> 
     </tr> 
     <tr> 
     <td>P1</td> 
     <td>P1 Desc</td> 
     <td>P1 Qty</td> 
     <td>P1 Price</td> 
     <td><img src="select.jpg" alt="select" class="select" /></td> 
     </tr> 
     <tr> 
     <td>P2</td> 
     <td>P2 Desc</td> 
     <td>P2 Qty</td> 
     <td>P2 Price</td> 
     <td><img src="select.jpg" alt="select" class="select" /></td> 
     </tr> 
    </table> 


$(".select").live('click', function(event) { 
    var rselect; 
    rselect = $(this).parent().parent().index(); 
$('.ProductSearch tr').each(function() 
    { 
     console.log($(this).html()); 
    }); 
}); 
+0

「我認爲它不可能給ID對每個TD,並使用該ID稱它爲」 。只需將id分配給行 –

回答

1

調用它,你可以嘗試closest()方法:

$(".select").on('click', function(event) { // use `on()` as `live()` is deprecated 
    var rselect; 
    rselect = $(this).closest('td'); 
    console.log(rselect.html()); 
}); 

http://jsfiddle.net/NftQj/


更新:

如果要遍歷trtd元素,你可以嘗試象下面這樣:

$(".select").on('click', function(event) { // use `on()` as `live()` is deprecated 
    var rselect; 
    rselect = $(this).closest('tr'); 
    rselect.find('td').each(function(){ 
     console.log($(this).html()); 
    }) 
}); 

http://jsfiddle.net/NftQj/2/

+0

rselect.html()獲取所有的td,但是如何區分它們? – Fara

+1

你可以使用'.closest('td');'http://jsfiddle.net/NftQj/ – undefined