0

我正在尝试在单击每一列时提醒消息。我有一个三行四列的表格,现在我想要在每个表格的第三列单击时带有下一列值的警报消息。我已经尝试过了,但所有列都获得值而不是特定列。我的问题是这是在每列单击时调用,但我只希望在每行的第三列单击时发出警报消息。

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());
});

在这里演示

4

7 回答 7

3

请尝试此代码

 $(document).ready(function () {

            $('#myTable tr').each(function (Mindex, Mval) {
                $(Mval).find('td:eq(2)').click(function () {
                    alert($(Mval).find('td:eq(3)').html());
                });
            });
于 2013-08-24T07:21:04.173 回答
1

尝试这个:

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

上面的函数确保您调用的是直接子元素,而不是任何嵌套的其他相同元素。解决未来的回归。

于 2013-08-24T06:57:55.517 回答
1

如果您的桌子要保持相同的大小,那么一些答案已经奏效。如果您的表格要增长,我建议您进行一些事件委托。如果有大量的事件监听器,它将显着加快页面速度。

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

请参阅此jsfiddle和此jquery 文档

于 2013-08-24T07:00:58.387 回答
1
$("#myTable tr td:nth-child(3)").click(function () {
     alert($(this).next().html());
});
于 2013-08-24T06:49:34.187 回答
1

尝试这个

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

在这里检查

于 2013-08-24T06:50:32.450 回答
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");
    });
于 2014-12-29T07:38:25.173 回答
-1

尝试这个:

var thirdEle = $("#myTable tr td:nth-child(3)");
thirdEle.bind("click", function () {
    alert($(this).html());
});
于 2013-08-24T06:44:19.440 回答