2012-06-30 67 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