3
我一直在试图创建一个由对象填充的html表格。做一个可选择的HTML表格作为值的对象
该表应该可以按行选择(通过悬停),当该行悬停在函数ran上时。
表头是在阵列中:
var topTitles = ["Type","Origin","Destination","T","A","G"];
所有的数据都坐在里面阵列,
var Type = [];
var Origin = [];
var Destination = [];
var T = [];
var A = [];
var G = [];
我试图修改的示例片的代码,但它是非常困难的将其概念化并将其置于程序化解决方案中。将这些数据直接映射到交互式表格的简便方法是什么?
function createTable() {
var table = document.getElementById('matrix');
var tr = addRow(table);
for (var j = 0; j < 6; j++) {
var td = addElement(tr);
td.setAttribute("class", "headers");
td.appendChild(document.createTextNode(topTitles[j]));
}
for (var i = 0; i < origins.length; i++) {
var tr = addRow(table);
var td = addElement(tr);
td.setAttribute("class", "origin");
td.appendChild(document.createTextNode(mode[i]));
for (var j = 0; j < topTitles.length; j++) {
var td = addElement(tr, 'element-' + i + '-' + j);
td.onmouseover = getRouteFunction(i,j);
td.onclick = getRouteFunction(i,j);
}
}
}
function populateTable(rows) {
for (var i = 0; i < rows.length; i++) {
for (var j = 0; j < rows[i].elements.length; j++) {
var distance = rows[i].elements[j].distance.text;
var duration = rows[i].elements[j].duration.text;
var td = document.getElementById('element-' + i + '-' + j);
td.innerHTML = origins[i] + "<br/>" + destinations[j];
}
}
}
if (highlightedCell) {
highlightedCell.style.backgroundColor="#ffffff";
}
highlightedCell = document.getElementById('element-' + i + '-' + j);
highlightedCell.style.backgroundColor="#e0ffff";
showValues();
}
的HTML表格元素(
回答
这可能是我能想到建表不改变你的数据结构,并非常清楚,所有的数据是来自最简单的方法。它绝对不是最好的代码,但它应该适合你的情况。
CodePen
来源
2016-07-22 22:47:09
感谢@JD E这个清晰的例子,但是如何获得突出显示效果呢?我希望强调一个单元格,然后运行ShowValue()函数 – Katserbot
你可以有每个TD元素有onmouseover事件 '
这可能是一个更好的删除类功能。 'function RemoveClass(){ this.className = this.className.replace(“highlight”,“”); }' –
相关问题