我想编写javascript代码,它会识别哪个按钮被点击并更改其标签。网页上有多个按钮,因此无法通过其ID引用它。仅通过点击它来识别它。 我看到一个关于堆栈溢出的讨论建议编写
<input type = "button" value = " " id ="3" onclick="click(event)">
在网页上,然后将点击定义为具有一个参数的函数,让我们称之为 EV。然后我通过
引用它(在函数内部)var button = ev.target;
然后尝试更改按钮的值。它没用。我只是想要一个按钮的标签,当我点击它而不用id引用它时(我不知道它的id是什么,因为它只是在许多中点击的按钮)。 任何人都可以解释如何做到这一点吗?
答案 0 :(得分:5)
onclick="clickMe(this)">
这将传递对单击元素的引用,然后您可以从元素中获取/设置您通常可以执行的任何操作,例如:
function clickMe(el) {
el.value = "Hi"; // set
alert(el.value); // get
}
注意:不允许调用函数click()
,因为它是一个保留关键字(就像你没有一个名为function()
的函数一样,这就是为什么我做了clickMe()
答案 1 :(得分:1)
将this
关键字作为参数传递,并使用数据属性保存新值:
html:
<input type="button" value=" " id="a3" data-value="test" onclick="func(this)">
JS
function func(elem) {
elem.value = elem.getAttribute('data-value');
}
答案 2 :(得分:0)
this
设置为浏览器点击的按钮:
<input type=button onclick=clickhandler>
<script>
function clickhandler() {
this.value = "foo"; // button’s label is now foo
console.log(this.id); // will print the button’s id
}
</script>