2011-09-23 8 views
5

以外の行をクリック可能となっています。しかし、セレクタで最後の列以外の行のみを選択させたときに問題が発生しました。以下のコードクリッカブル行でjqueryのは、私は私のテーブルの行はクリッカブルとのhrefにリンクされていることを得ることができた最後の列

は、私は、このセル内の管理リンクを持っているように、私は(リンク等の行を削除、編集、アクティブにするために)必要とするものである最後のセルを除き、行全体に対してのみ有効です。唯一の問題は、どの行をクリックしていても、一番上の行のリンクに移動することです。私はこれが発見(「TDのA」)のための私のセレクタとは何かを持っていると思いますが、私はそれを把握することはできません。

$('#dataTable tr td:not(:last-child)').click(function() { 
location.href = $('#dataTable tr').find('td a').attr('href'); 
}); 

ホバーはうまく動作し、マウスが最後の列以外のセルの上にある場合にのみポインタを変更します。

$('#dataTable tr td:not(:last-child)').hover(function() { 
$(this).css('cursor','pointer'); 
    }, function() { 
    $(this).css('cursor','auto'); 
}); 

答えて

10

それはあなたがテーブル内のすべてのtrのを取得しているし、その後発見された最初のアンカーが返されますので、このようにそれを変更してみてくださいです:

$('#dataTable tr td:not(:last-child)').click(function() { 
location.href = $(this).parent().find('td a').attr('href'); 
}); 

それが何を意味するのか、それは意志されますクリックした要素$(this)をjqueryオブジェクトとして取得し、その親に移動します。 (行要素)。

+0

本当にありがとうございました。私はこれを一晩中働かせようとしています。私はjQueryのに新しいですし、私はすべてのtrのをつかんれた、私はちょうどそれを変更する方法を見つけ出すことができませんでした考え出しました。再度、感謝します! – Andrew

1
$('#dataTable tr td:not(:last-child)').click(function() { 
location.href = $(this).parent().find('td a').attr('href'); 
}); 

これはうまくいくと思います。あなたのコードは、常にそれがあなたのdataTable内で最初に見つかった「TD」からのhrefを取ります。このコードは、あなたが探している特定の場所で見つかったものをとります。

関連する問題

 関連する問題