【问题标题】:JavaScript onClick event - HTML tableJavaScript onClick 事件 - HTML 表格
【发布时间】:2014-01-09 23:28:18
【问题描述】:

我正在学习 JavaScript,最近我一直在试验鼠标事件,试图了解它们是如何工作的。

<html>
<head>
    <title>Mouse Events Example</title>
    <script type="text/javascript">
        function handleEvent(oEvent) {
            var oTextbox = document.getElementById("txt1");
            oTextbox.value += "\n" + oEvent.type;

            if(oEvent.type=="click")
            {
            var iScreenX = oEvent.screenX;
            var iScreenY = oEvent.screenY;
            var b = "Clicked at "+iScreenX+" , "+iScreenY;

            alert(b);
            }
        }
        function handleEvent1(oEvent) {
            // alert("Left Window");
        }
    </script>
</head>
<body>
    <p>Use your mouse to click and double click the red square</p>
    <div style="width: 100px; height: 100px; background-color: red"
        onmouseover="handleEvent(event)"
        onmouseout="handleEvent1(event)"
        onmousedown="handleEvent(event)"
        onmouseup="handleEvent(event)"
        onclick="handleEvent(event)"
        ondblclick="handleEvent(event)" id="div1"></div>
    <p><textarea id="txt1" rows="15" cols="50"></textarea></p>
</body>

这是我一直试图理解的代码。任何人都可以帮我创建一个 HTML 表格,在点击表格的一个单元格时,用户会被告知他正在点击的单元格? 一直卡在上面,谢谢帮助。

【问题讨论】:

  • HTML 中没有表格

标签: javascript html events onclick


【解决方案1】:
var table = document.getElementById("tableID");
if (table != null) {
    for (var i = 0; i < table.rows.length; i++) {
        for (var j = 0; j < table.rows[i].cells.length; j++)
        table.rows[i].cells[j].onclick = function () {
            tableText(this);
        };
    }
}

function tableText(tableCell) {
    alert(tableCell.innerHTML);
}

是您可以做的一个示例。 DEMO

【讨论】:

  • 我支持你,但我认为你的答案可以改进。 jsfiddle.net/8A37s/7.
  • @robbmj 这是个好主意,但我认为 OP 没有这样命名的表格单元格
  • @user2169914 乐于助人,请记得点赞并接受雪人的回答。
  • 为了在 onClick 函数中获取列和行索引,您必须用 let 声明 i & j 变量var;
【解决方案2】:

只需将onclick 插入表格的每个&lt;td&gt; 中,如果单元格的名称是示例,您可以执行类似的操作:

<td onclick="alert('You are clicking on the cell EXAMPLE')">

【讨论】:

    【解决方案3】:

    我们可以使用 .querySelectorAll 来检索所有表格维度 AKA 单元格,而不是使用 getElementById。之后,我们可以执行一个循环(虽然请注意,在 JS 的后端,仍然会执行一个循环来检索表格单元格。)。首先,让我们创建单击单元格时要执行的操作:

    function tableText() {
        alert(this.innerHTML);
    }
    

    让我们用 querySelectorAll 方法检索所有单元格:

    var cells = document.querySelectorAll("td")
    

    将事件侦听器放置到每个单元格:

    for (var i = 0; i < cells.length; i++)
        cells[i].addEventListener("click", tableText)
    }
    

    完整代码:

    function tableText() {
      alert(this.innerHTML);
    }
    
    var cells = document.querySelectorAll("td")
    
    for (var i = 0; i < cells.length; i++){
      cells[i].addEventListener("click", tableText)
    }
    

    【讨论】:

      猜你喜欢
      • 2012-07-05
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 2011-11-12
      相关资源
      最近更新 更多