gpt4 book ai didi

javascript - 添加向上、向下、向左、向右按钮来选择单元格

转载 作者:行者123 更新时间:2023-11-28 06:19:51 24 4
gpt4 key购买 nike

我有一个简单的问题要问你。我这里有一些代码,允许用户告诉他们想要在表中有多少行和列。我已经想通了。我不知道如何添加向上、向下、向左和向右按钮,以便它们可以选择表中的某个单元格。这是我需要的样子:

What I need it to look like

这是我到目前为止的代码:

Javascript:

function createTable()
{
var num_rows = document.getElementById('rows').value;
var num_columns = document.getElementById('columns').value;
var theader = '<table border="1">\n';
var tbody = '';

for( var i=0; i<num_rows;i++)
{
tbody += '<tr>';
for( var j=0; j<num_columns;j++)
{
tbody += '<td>';
tbody += 'Cell ' + i + ',' + j;
tbody += '</td>'
}
tbody += '</tr>\n';
}
var tfooter = '</table>';
document.getElementById('wrapper').innerHTML = theader + tbody + tfooter;
}

HTML:

<form name="tablegen">

<label># of Rows: <input type="text" name="rows" id="rows"/></label> <br/><br />

<label># of Columns: <input type="text" name="columns" id="columns"/> </label><br/><br />

<input name="generate" type="button" value="Generate" onclick='createTable();'/><br /><br />
</form>

<div id="wrapper"></div>

我如何才能获取此代码并将按钮添加到我的表格中以选择某个单元格?

感谢您的反馈,我们非常感谢您的帮助!

最佳答案

给每个单元格一个唯一的ID。第 1 行单元格 ID:11, 12, 13, ..., 1 n;第 2 行单元格 ID:21、22、23、...、2 n。拥有一个变量或对象属性来跟踪事件单元格(突出显示的单元格)。单击按钮时,通过添加或减去单元格 ID 的适当数字来获取相应单元格的 ID。

例如:

<style>
#tab{
height: 102px;
width: 102px;
display:inline-block;
border:1px solid black;
background-color: white;
}
td{
border: .5px solid blue;
height: 20px;
width: 20px;
}
</style>

<body>

<div id ="main">
<table id="tab">
</table>
</div>
<button id="up">up</button>
<button id="down">down</button>

<script>
window.onload = function(){
function genGrid(n,m){
for (var i = 0; i<n;i++){
var row = document.createElement('tr')
row.id = "row"+i
for(var j=0; j<m;j++){
var cell = document.createElement('td')
cell.id = String(i+1)+String(j+1)
cell.innerText = cell.id
cell.style.color = "red"

row.appendChild(cell)
}
document.getElementById("tab").appendChild(row)
}
}
genGrid(4,4)

// manually choosing active cell and bg color
var activeCell = "11"
document.getElementById("11").style.backgroundColor = "yellow"

document.getElementById('up').onclick = function(){
var newId = parseInt(activeCell.slice(0,1))-1
if(newId > 0){
var oldCell =document.getElementById(activeCell)
oldCell.style.backgroundColor = "white"

var id = String(newId)+activeCell.slice(1,2)
var newCell = document.getElementById(id)
newCell.style.backgroundColor = "yellow"

activeCell = id
}
}
document.getElementById('down').onclick = function(){
var newId = parseInt(activeCell.slice(0,1))+1
var rowLength = document.getElementsByTagName('tr').length

if(newId <= rowLength){
var oldCell =document.getElementById(activeCell)
oldCell.style.backgroundColor = "white"

var id = String(newId)+activeCell.slice(1,2)
var newCell = document.getElementById(id)
newCell.style.backgroundColor = "yellow"
activeCell = id
}
}

}
</script>
</body>

关于javascript - 添加向上、向下、向左、向右按钮来选择单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35635056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com