[英]JavaScript onClick event - HTML table
我正在學習 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 表格,該表格在用戶單擊表格的單元格時會被告知他正在點擊的單元格? 被困在它的時間,謝謝你的幫助。
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);
}
是你可以做什么的一個例子。 演示
只需將onclick
插入表格的每個<td>
中,如果單元格的名稱是示例,您可以執行類似的操作:
<td onclick="alert('You are clicking on the cell EXAMPLE')">
我們可以使用 .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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.