5 个答案:
答案 0 :(得分:3)
您可以使用closest('tr')查找最近的父tr元素,然后使用index()获取行号。试试这个:
$('td').click(function() {
var $tr = $(this).closest('tr');
var rowIndex = $tr.index();
});
另请注意,您应该从PHP循环中的id元素中删除td属性,否则您将复制它们,这是无效的,可能会导致JS或渲染问题。
答案 1 :(得分:2)
$('table').on('click', 'td', function() {
var rowNumber = $(this).closest('tr').index() + 1;
var content = $(this).html();
console.log(rowNumber);
console.log(content);
});
您不需要知道您点击的某种标识,因为jQuery知道您单击的元素与整个DOM有关。
当索引从0开始计数时,您需要向行号变量添加1。
答案 2 :(得分:2)
如果您需要知道元素的位置,请使用.index()。
$('td').on('click',function()
{
console.log($(this).closest('tr').index())
})
否则$(this)将成为元素本身。
答案 3 :(得分:1)
假设您在TD上点击了点击次数,您可以获得closest祖先TR,只需通过index()查看其父级的索引位置:
$('table td').on('click', function(){
console.log($(this).closest('tr').index());
});
如果动态添加行/ TD,请使用on的委托版本:
$('table').on('click', 'td' function(){
console.log($(this).closest('tr').index());
});
此事件仅在事件发生时才应用选择器。
注意:
index返回从0开始的值。
您可能实际上并不关心索引值本身,而只关注closest('tr')以进行其他操作。
更新
如果你想在表格中使用行ID,请将其应用于TR元素,以便获得
并使用进行访问
$('table td').on('click', function(){
var id = $(this).closest('tr').data('parent_id');
});
答案 4 :(得分:0)
如果需要行号,可以使用索引功能。最简单的方法是更改单击处理程序(假设您要获取所单击的tr中任何td的索引)。您甚至不需要在您的TD上放置ID:
<?php echo $foo->bar1; ?><?php echo $foo->bar2; ?><?php echo $foo->bar3; ?>$( document ).ready( function() {
$( '.clickiness' ).click( function( event ) {
var $tds = $( this ).children();
var $clickedTD = $( event.target );
var clickedIndex = $clickedTD.index( $tds ); // the zero-based index
});
});
我在这里做的是设置将click处理程序设置为TR,所以当单击TR中的任何内容时,该函数将运行,然后我使用事件变量来获取被点击的实际元素