假设在单元格上检测到点击:
$('td').click(function(){
var col = $(this).index(),
dataInfo = $('thead th').eq(col).attr('data-info');
/* or:
dataInfo = $('thead th').eq($(this).index()).attr('data-info');
or:
dataInfo = $('thead th').eq($(this).index()).data('info');
*/
});
JS Fiddle 演示使用:$('thead th').eq(col).attr('data-info')
.
JS Fiddle 演示使用:$('thead th').eq($(this).index()).attr('data-info')
.
JS Fiddle 演示使用:$('thead th').eq($(this).index()).data('info')
.
当然,您可以将事件处理程序放在祖先元素上,例如tr
,使用以下任一方法:
$('tr').click(function (e) {
var dataInfo = $('thead th').eq(e.target.cellIndex).data('info');
console.log(dataInfo);
});
JS 小提琴演示。
(请注意,通常情况下,event.target
不一定是跨浏览器兼容的,Internet Explorer 可能需要(在 jQuery 之外)一个替代方案:window.event.srcElement
,但是 jQuery 将事件标准化,因此 IE 不仅会读取/“理解” event
(而不是requirewindow.event
代替)但它也可以访问 normalized event.target
。)
或者,要使用足够的 jQuery:
$('tr').on('click', 'td', function (e) {
var dataInfo = $('thead th').eq($(this).index()).data('info');
console.log(dataInfo);
});
JS 小提琴演示。
以同样的方式,click
也可以绑定到table
元素:
$('table').click(function (e) {
var dataInfo = $('thead th').eq(e.target.cellIndex).data('info');
console.log(dataInfo);
});
JS 小提琴演示。
参考: