セルでクリックが検出されたと仮定します。
$('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
(そして代わりにrequire window.event
) を使用しますが、正規化された にもアクセスできます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 フィドルのデモ。
参考文献: