1

これを使用して、テーブルごとにクリックイベントを設定しようとしています。

これは表です:

<table border='1px'>
    <tr>
        <td class='td'>first row frist column</td>
        <td>first row second column</td>
    </tr>
    <tr>
        <td class='td'>second row frist column</td>
        <td>second row second column</td>
    </tr>
    <tr>
        <td class='td'>third row frist column</td>
        <td>third row second column</td>
    </tr>
</table>

そして、これは単純なjQueryです:-

$('table tbody tr  td:nth-child(1)').live('click',function(){
alert($(this).text());
})

これで最初の列のいずれかをクリックし、アラートでテーブルの最初の行の列のクリックイベントを設定解除します。

これどうやってするの。

4

6 に答える 6

2

これを試してください、DEMO http://jsfiddle.net/yeyene/CGbXP/4/

col+number すべての列にクラスを与えます。次に使用...

var i = 1;
$('td').each(function(){    
    $(this).addClass('col'+i);
    i = i+1;
});

$('table').find("td:not(.col4)").on('click',function(){
    alert($(this).text());
})
于 2013-07-26T07:25:38.363 に答える
2

疑似セレクターを使用して:not()、クリック バインディングから最初の行を除外できます。

$('table tbody tr:not(:first) td:first-child')

これにより、最初の行の最初の列を除くすべての最初の列にクリック ハンドラーが追加されます。上記のjsFiddleを次に示します。

于 2013-07-26T07:21:54.573 に答える
1

このコードを試してください

    $('table tbody tr:not(:first-child)  td').click(function(){
alert($(this).text());
})

http://jsfiddle.net/pepean/JP9EM/

于 2013-07-26T07:26:28.217 に答える
1

.live() メソッドの使用は推奨されなくなりました。jQuery の新しいバージョンでは、欠点のないより優れたメソッドが提供されているためです。

.livejqueryの最新バージョンでは非推奨です。

これを試して

$('table tbody tr:not(:first)').on('click',function(){
alert($(this).text());
});

Jsフィドル

于 2013-07-26T07:23:57.783 に答える
1

0 より大きいインデックスを持つすべての行にのみ適用するように指定することで、セレクターの最初の行をすぐに除外できます。

$('table tbody tr:gt(0) td:nth-child(1)').live('click',function(){
    alert($(this).text());
});

ただし、より最近の jQuery バージョンで.liveは非推奨になり、1.10 で削除されたので、.on代わりに次を使用する必要があります。

$('table tbody tr:gt(0) td:nth-child(1)').on('click',function(){
    alert($(this).text());
});

最後に、ネストされたテーブルが必要な場合に備えて、セレクターが返すヒットが多すぎます。代わりに直接の子を選択します。

$('table > tbody > tr:gt(0) > td:nth-child(1)').on('click',function(){
    alert($(this).text());
});

デモ: http://jsfiddle.net/2FkDY/

于 2013-07-26T07:28:17.563 に答える