gpt4 book ai didi

javascript - 如何检查哪个表格单元格触发了一个 Action JavaScript

转载 作者:行者123 更新时间:2023-11-28 16:08:16 25 4
gpt4 key购买 nike

我是网络开发的新手,为了完成一些简单的任务我正在做一个元素,结果是我想执行的任务我必须使用 Javascript 但我对 Javascript 的了解很少不知道如何做我想做的事,我在网上搜索过,但没能找到任何有用的东西:

How to know element clicked within a table?

How to access specific cell of clicked table row in javascript

...

这是我到目前为止编写的元素代码:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Menu</title>
<script>
function toggleTable() {
var lTable = document.getElementById("menulist");
lTable.style.display = (lTable.style.display == "table") ? "none" : "table";
}
</script>
</head>

<body>
<table width="300" border="1" id="menuitems">
<tbody>
<tr>
<td onclick="toggleTable()" id="cell1">&nbsp;On-Menu</td>
<td onclick="toggleTable()" id="cell2">&nbsp;On-Menu</td>
<td onclick="toggleTable()" id="cell3">&nbsp;On-Menu</td>
<td onclick="toggleTable()" id="cell4">&nbsp;On-Menu</td>
</tr>
<tr>
<td onclick="toggleTable()" id="cell5">&nbsp;On-Menu</td>
<td onclick="toggleTable()" id="cell6">&nbsp;On-Menu</td>
<td onclick="toggleTable()" id="cell7">&nbsp;On-Menu</td>
<td onclick="toggleTable()" id="cell8">&nbsp;On-Menu</td>
</tr>
<tr>
<td onclick="toggleTable()" id="cell9">&nbsp;On-Menu</td>
<td onclick="toggleTable()" id="cell10">&nbsp;On-Menu</td>
<td onclick="toggleTable()" id="cell11">&nbsp;On-Menu</td>
<td onclick="toggleTable()" id="cell12">&nbsp;On-Menu</td>
</tr>
</tbody>
</table>
<table width="300" border="1" id="menulist">
<tbody>
<tr>
<td id="cellorange">&nbsp;Orange</td>
</tr>
<tr>
<td id="cellapple">&nbsp;Apple</td>
</tr>
<tr>
<td id="cellbanana">&nbsp;Banana</td>
</tr>
</tbody>
</table>
</body>
</html>

这里我有 2 组表格,一组包含由“On-Menu”表示的空单元格,另一组包含选项列表。请看这里:https://jsfiddle.net/pz6tc3ae/

到目前为止,当单击每个表格单元格时,该元素会触发一个 javascript 函数 toggleTable(),它会切换名为 menulist 的分区表,其中包含 Orange、Apple 和 Banana。

表 1 = 菜单项表 2 = 菜单列表

我想知道的是:

用户可以单击表 1 中的任何单元格,这将触发 toggleTable 函数并切换(显示/隐藏)表 2。我想知道的是哪个表单元格触发了表 2。

完成第一个任务后,在表 2 中,我为橙色、苹果和香蕉这三个选项中的每一个都指定了 ID,当用户单击这些选项中的任何一个时,我希望将此单元格的文本写入单元格来自首先触发表 2 的表 1。

我不知道如何去做这件事,而且我对 Javascript 知之甚少,我的研究并没有像我希望的那样有效,因此,如果有人能帮助我,我将不胜感激。

在此先感谢,如果我的问题不够清楚,请告诉我。

最佳答案

您不需要将事件处理程序分配给第一个表的每个单元格,坦率地说,它使用了一种不再受青睐的非常古老的技术来做到这一点。此外,您不需要添加  在单元格中的每段文本之前,您可以只使用一个常规空格,因为客户端只会在有多个空格时删除空格。

这是解决问题的非 JQquery(直接 JavaScript)方法:

    var firstTable = document.getElementById("table1")
var firstTableCells = firstTable.getElementsByTagName("td");
var lTable = document.getElementById("menulist");
var lTableCells = null;
var actionCell = null;
for(var i = 0; i < firstTableCells.length; ++i){
firstTableCells[i].addEventListener("click", function(evt){
actionCell = evt.srcElement;
lTable.style.display = (lTable.style.display === "table") ? "none" : "table";
if(lTable.style.display === "table"){
lTableCells = lTable.getElementsByTagName("td");
for(var x = 0; x < lTableCells.length; ++x){
lTableCells[x].addEventListener("click", function(){
actionCell.innerHTML = this.innerHTML;
});
}
}
});
}

JSFiddle:https://jsfiddle.net/pz6tc3ae/17/

关于javascript - 如何检查哪个表格单元格触发了一个 Action JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35065085/

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