确定谁触发了功能

Identify who triggered a function

我有一个问题,不确定如何使用 Javascript 来实现。

我有一个包含例如 2 个输入字段的页面,现在,我正在做的是 "onKeyUp" 调用一个函数并传递调用函数的参数。

有没有什么方法可以只调用函数,并从函数内部知道调用它的字段?

示例:

<input name="q1" id="q1" onkeyup="mirar('q1')" type="text" />
<input name="q2" id="q2" onkeyup="mirar('q2')" type="text" />

改成

<input name="q1" id="q1" onkeyup="mirar()" type="text" />
<input name="q2" id="q2" onkeyup="mirar()" type="text" />

EventTarget 应该会提供你所需要的。

function mirar()
{
    alert("caller is " + mirar.caller);
}

或者,如果他们仍然传递一个参数,但相同的参数,是否可以接受?

<input name="q1" id="q1" onkeyup="mirar(event)" type="text" />
<input name="q2" id="q2" onkeyup="mirar(event)" type="text" />

function mirar(event) { 
    alert(event.target.nodeName);
}

您可以简单地传递 this 以在函数中引用它以了解实际调用函数的元素:

function mirar(el){
  console.log('Id:', el.id)
}
<input name="q1" id="q1" onkeyup="mirar(this)" type="text" />
<input name="q2" id="q2" onkeyup="mirar(this)" type="text" />