在Javascript中:
我需要通过点击,控制点击和移动点击html表格中的行来实现选择,例如在Windows资源管理器中,如果代码已经存在,我讨厌编写它。
有人能指出我正确的方向吗?
谢谢!
答案 0 :(得分:4)
所需的脚本非常简单。这样的事情会起作用:
var keyDown = null;
var selectedRows;
var allRows;
function bindEvents() {
allRows = document.getElementsByTagName("tr");
document.onkeydown = function(e) {
if (!e) e = window.event;
if (e.ctrlKey) keyDown = "ctrl";
if (e.shiftKey) keyDown = "shift";
};
document.onkeyup = function(e) {
keyDown = null;
};
for (var i = 0, l = allRows.length; i < l; i++) {
allRows[i].onclick = new Function("selectRow(" + i + ")");
}
}
function selectRow(rowID) {
if (!keyDown)
selectedRows = [rowID];
else {
if (keyDown == "ctrl")
selectedRows.push(rowID);
else {
if (selectedRows.length > 0) {
var lastSelected = selectedRows[selectedRows.length - 1];
for (var i = lastSelected + 1; i <= rowID; i++)
selectedRows.push(i);
} else
selectedRows.push(rowID);
}
}
for (var i = 0, l = allRows.length; i < l; i++)
allRows[i].style.backgroundColor = "";
if (selectedRows.length > 0)
for (var i = 0, l = selectedRows.length; i < l; i++)
allRows[selectedRows[i]].style.backgroundColor = "red";
keyDown = null;
}
添加body onload =“bindEvents()”,它将适用于页面中的所有表(如果您有多个表,则可能需要将脚本更改为仅使用您关注的表)。它不是最漂亮的代码,但它可以解决问题。