我如何知道哪个按钮导致此功能运行?具体来说,如果我想将函数的值设置为等于按钮的值?
var foo_button = document.getElementById("foo_button");
var bar_button = document.getElementById("bar_button");
foo_button.onclick = foo_or_bar;
bar_button.onclick = foo_or_bar;
然后在以后的函数中:
function foo_or_bar(){
//this should return the value of the button that was pressed (in this case "foo"
//or "bar"
return button_that_sent_me;
}
有没有办法可以检测出导致这种情况发生的按钮的值?
答案 0 :(得分:1)
您可以使用此作为@ A1rPun说或通过window.event访问该按钮,这也有助于您使用内联onclicks和其他未经推荐的做法:
JS
function foo_or_bar() {
console.log(window.event.target.value);
console.log(this.value);
}
HTML
<button id="foo_button" value="foo">internals</button>
为您提供以下控制台日志:
foo
foo
答案 1 :(得分:0)
'this'发送与该元素相关的所有信息以激活该事件:
<button onclick="foo_or_bar(this.id);" id="foo">Foo</button>
function foo_or_bar(id) {
button_that_sent_me = id;
}