2012-03-31 79 views
0

我有一个通过循环在php中创建一个表。即表中的行数将是动态的(1,2,3,4,5等,因为我想显示)。 我希望在最后td的每一行中,当我们关注时,所有以前td的值将被计算出来,并将显示在上一个td中。jquery和表操作

<select name="number" id="number" onchange="document.form2.submit()"> 
<? for($j=1;$j<=5;$j++) {?> 
    <option value="<?=$j ?>" <?=($j==$_REQUEST['number'])?'selected':'' ?>><?=$j ?></option> 
<? } $num=$_REQUEST['number']; ?> 
</select> 
<table width="100%" border="0" cellpadding="4" cellspacing="5" id="mytable"> 
    <thead> 
     <tr> 
      <th width="35%">Length</th> 
      <th width="36%">Width</th> 
      <th width="29%">Area</th> 
     </tr> 
    </thead> 
    <tbody> 
    <? for($i=0;$i<$num;$i++) {?> 
     <tr class="row"> 
      <td><input type="text" name="length" class="textbox" id="length"/></td> 
      <td><input type="text" name="width" class="textbox" id="width" /></td> 
      <td><input type="text" name="area" class="textbox" id="area" onfocus="" /></td> 
     </tr> 
    <? } ?> 
    </tbody> 
</table> 

请提供代码来选择每行的最后一个td。 我已经试过很多,但没有成功yet.All帮助将不胜感激......

+0

你这是什么意思的重点?重点是你做输入元素的东西。如果你的意思是“点击”,那么点击之前显示的是什么?是否有一个原因,你不只是计算在PHP的“面积”,并将其放入HTML? – Sinetheta 2012-03-31 07:37:06

+0

看看http://cssglobe.com/lab/tablecloth/ – 2012-03-31 07:42:23

回答

0

Demo here

$(function() { 

    $('input[name="area"]').on('focus', function() { 
     var $tr = $(this).closest('tr'); 
     var $length = $tr.find('input[name="length"]').val(); 
     var $width = $tr.find('input[name="width"]').val(); 
     this.value = $length * $width 
    }); 

});​ 

顺便说一下,数字只能使用一次。你不能多次使用它。

0

要选择行的最后td

$('tr.row td:last-child'); 

要选择行的最后tdtextbox

$('tr.row td:last-child').children('input.textbox')​ 

为了使这个轻松了很多,不重复的ID并在您的文本框中添加额外的类:

<? for($i=0; $i<$num; $i++) {?> 
<tr class="row"> 
    <td><input type="text" name="length" class="textbox length" /></td> 
    <td><input type="text" name="width" class="textbox width" /></td> 
    <td><input type="text" name="area" class="textbox area" onfocus="" /></td> 
</tr> 
<? } ?> 

根据这样的标记,在该行的最后td选择textbox变为:

$('input.area')​