2

我有一个这样的 HTML 表格,

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

当我单击表格行时,我想做一个操作,示例需要显示警报窗口...

我的 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 中有一个链接标签,当我们单击该链接时,不显示任何警报消息.. 否则我们想显示警报消息,无论是第一个 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

您可以尝试对您的索引方法,td因为它td是用户单击的位置。此外,您必须将代码包装在里面$(document).ready( function()

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

是一个有效的现场演示。

这是根据您的要求更新的小提琴

于 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 回答