javascript - 如何通过它的'this'返回来用javascript捕获一个html元素(来自DOM)?
问题描述
我正在尝试获取一个 HTML 元素,querySelector
但它返回null
. 我怎么才能得到它?
btn
是按钮的“这个”:
<button class="Medium" onclick="restartGame(this, 1)">Medium</button>
我正在尝试的功能是:
function setCurrLevel(btn) {
var elCurrBtn = document.querySelector(`${btn.class}`);
if (elCurrBtn.innerText === 'Easy') {
gCurrLevel = 0;
} else if (elCurrBtn.innerText === 'Medium') {
gCurrLevel = 1;
} else if (elCurrBtn.innerText === 'Hard') {
gCurrLevel = 2;
}
return gCurrLevel;
}
解决方案
如果btn
已经引用了按钮,则根本不需要querySelector
。只需使用btn
:
var gCurrLevel;
function setCurrLevel(btn) {
if (btn.innerText === 'Easy') {
gCurrLevel = 0;
} else if (btn.innerText === 'Medium') {
gCurrLevel = 1;
} else if (btn.innerText === 'Hard') {
gCurrLevel = 2;
}
console.log("gCurrLevel = " + gCurrLevel);
// return gCurrLevel; // Don't do this in an event handler
}
<button class="Medium" onclick="setCurrLevel(this)">Medium</button>
我已经替换resetGame(this, 1)
了,setCurrLevel(this)
所以它们匹配,但根据需要进行调整。
推荐阅读
- electron - Electron IpcRendrer 未将数据从 Main 发送到 HTML
- flutter - 如何在 Flutter 中将图标与背景颜色正确居中?
- azure - Azure sql 数据库建议
- python - 如何编写返回数据帧的函数,该数据帧排除指定列中的值超过 max_value 或小于 min_value 的行
- flutter - 如何使用 onGenerateRoute 函数将参数传递给屏幕,如 Flutter 中使用 Getx 的示例
- css - R Studio CSS 文件难以辨认
- java - Java 应用程序中的 Axon - 对事件处理程序错误作出反应
- python - 是否可以混合 pydantic BaseModels 和 Starlette Request?
- swift - 在 TableViewCell 中执行 UIDocumentPickerView
- xero-api - Xero API,以“草稿”状态为 PayRun 创建工资单