最近的td值

时间:2012-04-11 08:05:47

标签: jquery

我有一张桌子:

<table>
<thead>
    <tr>
        <td>some1</td>
          ......
        <td>some2</td>
        <th>count</th>
        <th>EditCount</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>some1</td>
          ......
        <td>some2</td>
        <td>25</td>
        <td><input type='text' value='1'/></td>
   </tr>
   <tr>
        <td>some1</td>
          ......
        <td>some2</td>
        <td>35</td>
        <td><input type='text' value='3'/></td>
   </tr>

如何从每行的输入中获取左侧的td值,例如当用户点击此输入时?

4 个答案:

答案 0 :(得分:3)

(注意“左侧”我认为这意味着第一个td,即最左边的那个)

试试这个:

$('input[type=text]' ).change(function() {
  var firsttd = $('td:first', $(this).parents('tr'));
});

在jQuery中使用.change()方法(可以是focusblur等)。使用选择器td:first获取第一个td并将上下文设置为当前对象(input') parent tr`

Working example here

更新

要获取之前的td(即使用值2535,请使用:

$('input[type=text]' ).change(function() {
  var prevtd = $(this).parent('td').prev('td');
});

这会获得.parent() td,然后是.prev() td

Working example here

答案 1 :(得分:0)

或......这样的事情

$('table input').click(function() {
    $(this).parent().css('border','1px solid #f00');
});

虽然我会用类或其他东西来个性化所选择的,但这并不常见

答案 2 :(得分:0)

添加一个类让我们假设'value'到所有左侧tds然后在输入上添加另一个类 调用此函数

<script type = 'text/javascript'>
$('.button_class').click(function(){
        var myvalue = $(this).parent().children().attr(value);
});

这将自动选择第一个孩子,或者你也可以使用它

var myvalue = $(this).parent().eq(0).attr(value);

答案 3 :(得分:0)

你习惯使用jQuery吗?如果是这样,那么你可以使用jQuery中的prev()函数来获取前一个兄弟(在这种情况下是前一个td)

阅读本文:http://api.jquery.com/prev/