2013-08-24 85 views
0

我试图在单击每列时发出警报消息。我有一个表格,其中三行四列,现在我想在每个表格的第三列点击下列值的警报消息。我已经尝试过,但所有的列都不是特定的列。我的问题是,这是在每列点击调用,但我想警示mesage只有将各行从特定列中获取值

HTML

<table id='myTable'> 
<tr><td>R1C1</td><td>R1C2</td><td>R1C3</td><td>R1C4</td></tr> 
<tr><td>R2C1</td><td>R2C2</td><td>R2C3</td><td>R2C4</td></tr> 
<tr><td>R3C1</td><td>R3C2</td><td>R3C3</td><td>R3C4</td></tr> 
</table> 

JS

$("#myTable tr").bind("click", function() { 
    alert($(this).children("td").eq(3).html()); 
}); 

演示Here

回答

1

试试这个

$('table#myTable tr td:nth-child(3)').on('click', function() { 
      alert($(this).next().html()); 
     }); 

检查Here

-1

尝试的第三栏点击这个:

var thirdEle = $("#myTable tr td:nth-child(3)"); 
thirdEle.bind("click", function() { 
    alert($(this).html()); 
}); 
1
$("#myTable tr td:nth-child(3)").click(function() { 
    alert($(this).next().html()); 
}); 
1

试试这个:

$('#myTable').children('tr').children('td').eq(3).on('click', function() { 
    alert($(this).next().html()); 
}); 

上述功能可以确保您所呼叫的直接子元素,但没有任何嵌套其他相同的元素。解决未来的回归。

1

如果您的表格要保持相同的大小,那么已经有效的答案。如果你的桌子将增长,我会建议做一些事件代表团。如果将要有大量的事件监听器,它将大大加快页面的速度。

$('#myTable').on('click', 'td:nth-child(3)', function(){ 
    alert($(this).text()); 
}); 

看到这个jsfiddle,这jquery documentation

3

请试试这个代码

$(document).ready(function() { 

      $('#myTable tr').each(function (Mindex, Mval) { 
       $(Mval).find('td:eq(2)').click(function() { 
        alert($(Mval).find('td:eq(3)').html()); 
       }); 
      }); 
0

下面的代码将查找并设置所需的列值

$('#myTable tr:gt(0)').each(function(){ 
     // console.log($('td:eq(3)', $(this)).html()); 
     alert($('td:eq(3)', $(this)).html()); 
     $('#myTable').find('tr:gt(0)').find('td:eq(3)').html("hello"); 
    });