我使用java脚本生成了一个动态html表。现在我需要让用户点击单元格的css类。
我该怎么做?
以下是代码:
function generateSeatMatrix() {
var rows = parseInt(document.getElementById('txtRows').value);
var cols = parseInt(document.getElementById('txtCols').value);
if (!validateMatrixInput(rows, cols)) {
// TODO display error message
return;
}
var matrixTable = document.getElementById('tblMatrix');
if (matrixTable.rows.length > 0) {
for (var k = matrixTable.rows.length - 1; k >= 0; k--) {
matrixTable.deleteRow(k);
}
}
for (var i = 0; i < rows; i++) {
matrixTable.insertRow(i);
for (var j = 0; j < cols; j++) {
matrixTable.rows[i].insertCell(j);
matrixTable.rows[i].cells[j].className = 'matrix-cell';
matrixTable.rows[i].cells[j].setAttribute('onclick', 'hello()');
}
}
}
'hello()'函数应该处理所需的逻辑。现在,该函数被正确调用,但我不知道如何获取所选的单元格css类。实际上,我试图将该位置发送为声明事件(使用setAttribute),但随后出现错误。
答案 0 :(得分:1)
我看到你正在尝试添加一个onclick,但是如果你创建了一些jquery就可以了。但你必须加载jQuery。虽然如果你动态构建它,你可能需要使用$('document')。find('td')。这可能不是您正在寻找的解决方案,但可以完成工作。
$('td').on('click', function(){
var myClass = this.className;
})
尝试添加评论但不会显示代码视图。
答案 1 :(得分:0)
以下是如何轻松处理这个问题。
matrixTable.rows[i].cells[j].setAttribute('onclick', 'hello(' + i + ',' + j + ')');
干得好!