2

私はこのようなHTMLテーブルを持っています、

<table>
<tr class="AltTR">
<td>
   First TD
</td>
<td>
  Second TD
</td>
<td>
  Third TD
</td>
<td>
  Fourth TD
</td>
</tr>
</table>

テーブルの行をクリックすると、1 つの操作を実行したいのですが、たとえば、アラート ウィンドウを表示する必要があります...

私のjqueryコードを以下に示します。

$(function(){
$(".AltTR").click(function() {

         //if ($(this).find("td:first").is(":click"))
    if ($(this).find("td:first").trigger('click'))
                alert("1st TD is clicked");
            else
                alert("Other than 1st TD is clicked");

     });

});

これを達成する方法は?

「最初の TD にリンク タグが 1 つあります。そのリンクをクリックしても、警告メッセージは表示されません。それ以外の場合は、最初の TD であるか他の TD であるかに関係なく、警告メッセージを表示したいと考えています。

4

4 に答える 4

4

index()jQueryでメソッドを使用して、これを行うことができます:

$(".AltTR td").click(function(){
    if($(this).index() == 0){
        alert("1st <td>");
    }
    else{
        alert("other than 1st <td>");
    }
});
于 2012-08-11T09:51:38.883 に答える
1

イベント オブジェクトのターゲットプロパティを確認する必要があります。

例えば

$(".AltTR").click(function(e) {
    if ($(this).find("td:first").is(e.target)) {
        // first td clicked
    }
}

http://jsfiddle.net/bt9xX/

于 2012-08-11T09:50:57.730 に答える
1

You may try the index methord to your td since its the td where a user is clicking. Also you must wrap your code inside $(document).ready( function() like;

$(document).ready( function() {
  $(".AltTR td").click(function(){
    if($(this).index() == 0){
        alert("1st TD is clicked");
    }
    else{
        alert("Other than 1st TD is clicked");
    }
  });
});

Here is a working Live Demo.

And here is the updated fiddle as per your requirement.

于 2012-08-11T09:56:53.777 に答える
0

別のアプローチ: http: //jsfiddle.net/JXLs3/

var targetTds = $('.AltTR');
$('td',targetTds).click(function() {
    alert($(this).html());


    if ($(this).is( $(':first',targetTds) )) {
       alert('first');        
    }
    else if ($(this).is( $(':last',targetTds) ) ) { 
       alert('last');                
    }
    else {
        alert('everything else');
    }

});​​​​​​​​​​​​​​​​​​​​​​​​​

​
于 2012-08-11T10:21:10.427 に答える