0

私はテーブルを持っています:

<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

4 に答える 4

3

(「左側」からのメモ、これは最初のもの、tdつまり一番左のものを意味すると思いました)

これを試して :

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

jQuery で.change()メソッドを使用します (これはまたはfocusなどである可能性がありますblur)。セレクターtd:firstを使用して最初のものを取得しtd、コンテキストを現在のオブジェクトに設定します ( input') parenttr`

作業例はこちら

アップデート

前のものを取得するにはtd(つまり、値を使用する25か、35次を使用します。

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

これは.parent() tdを取得し、次に.prev () を取得します td

作業例はこちら

于 2012-04-11T08:08:58.713 に答える
0

クラスを追加して、すべての左側の tds に「値」を仮定し、入力に別のクラスを追加して、この関数を呼び出します

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

これにより、最初の子が自動的にすべて選択されます。または、これも使用できます。

var myvalue = $(this).parent().eq(0).attr(value);
于 2012-04-11T08:13:33.470 に答える
0

jQuery の使用に慣れていますか? その場合、jQuery で prev() 関数を使用して、直前の兄弟 (この場合は前の td) を取得できます。

これを読んでください:http://api.jquery.com/prev/

于 2012-04-11T08:13:52.810 に答える
0

または..このようなもの

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

選択したものをクラスなどでパーソナライズするので、それほど一般的ではありませんが

于 2012-04-11T08:12:47.133 に答える