如何通过函数传递HTML元素,因为我不想使用ID,我想动态创建函数。
焦点在这里没有意义,但在我的代码中确实有意义:
function MyFunction(passedObject) {
alert(passedObject.value);
passedObject.focus()
}
<input onclick="MyFunction(this)">
我不想使用像这样使用ID的解决方案:
function MyFunction() {
alert(document.getElementById("TheInput").value);
document.getElementById("TheInput").focus()
}
<input id="TheInput" onclick="MyFunction()">
答案 0 :(得分:0)
我认为你需要这样的东西
function MyFunction(element) {
alert(element.value);
element.focus()
}
&#13;
<input onclick="MyFunction(this)" value="Hello World">
&#13;
答案 1 :(得分:0)
您可以使用以下内容动态定义html生成中的函数:
<input onclick="function(element) { alert(element.value); element.focus() }(this)" value="Hello World">
关键部分是函数在函数声明后传递它。单击按钮后该功能将不存在。如果在单击按钮之前它存在,它将覆盖先前的声明。如果您只是尝试执行该函数并且不需要在onclick之外与它进行交互,也可以删除函数名称并将其作为匿名函数执行。
答案 2 :(得分:-1)
我认为这是解决方案:你必须使用ID选择元素,但只需要一次。
var input = document.getElementById("TheInput");
function MyFunction(passedObject) {
alert(passedObject.value);
passedObject.focus()
}
var inputElem = document.getElementById("TheInput");
MyFunction(inputElem)