2012-10-13 51 views
0

我想更改表格中的特定行,但这样做有另一个<span>。我想改变第一个范围的值。从表格的特定行更改值

我的代码是象下面这样:

<table id="mytable"> 
<tr> 
    <th>Book_ID</th> 
    <th>Title</th> 
    <th>Price</th> 
    <th>Qty</th> 
    <th>Total</th> 
</tr> 
<tr> 
    <td>A001</td> 
    <td>my book</td> 
    <td>10000</th> 
    <td> 
      <span>3</span> 
      <span><a>delete</a></span> 
      <span> 
       <a href=# title="plus_qty"><img src="quantity_up.gif"></a> 
      </span> 
      <span> 
       <a href=# title="minus_qty"><img src="quantity_down.gif"></a> 
      </span> 
    </td> 
    <td>30000</td> 
</tr> 
</table> 

而不删除<span title="plus_qty">,并<span title="minus_qty">或不<td><span>我可以获取和更新数量值。这是我的代码而不删除元素:

<table id="mytable"> 
<tr> 
    <th>Book_ID</th> 
    <th>Title</th> 
    <th>Price</th> 
    <th>Qty</th> 
    <th>Total</th> 
</tr> 
<tr> 
    <td>A001</td> 
    <td>my book</td> 
    <td>10000</th> 
    <td>3</td> 
    <td>30000</td> 
</tr> 
</table> 

jQuery代码:

var row = $('#mytable').find('td'); 
for(i=0;i<row.length;i++){ 
    if(row.eq(i).text() == 'A0001'){ 
     row.eq(i+3).text(parseInt(row.eq(i+3).text())+1); 
    } 
} 

回答

1

试试这个:

var row = $('#mytable').find('td'); 
for(i=0;i<row.length;i++){ 
    if(row.eq(i).text() == 'A0001'){ 
     ch = row.eq(i+3).children(':first-child'); 
     ch.text(parseInt(ch.text())+1); 
    } 
} 

照顾有可能的拼写错误,在你的HTML代码,你有<td>A001</td>但在你的javascript中你搜索A0001这是一个不同的值,修复后我自己我的上面的代码工作。