如何引用已被单击的按钮而不是其ID

时间:2013-07-04 15:48:35

标签: javascript

我想编写javascript代码,它会识别哪个按钮被点击并更改其标签。网页上有多个按钮,因此无法通过其ID引用它。仅通过点击它来识别它。 我看到一个关于堆栈溢出的讨论建议编写

<input type = "button" value = " " id ="3" onclick="click(event)">

在网页上,然后将点击定义为具有一个参数的函数,让我们称之为 EV。然后我通过

引用它(在函数内部)
var button = ev.target;

然后尝试更改按钮的值。它没用。我只是想要一个按钮的标签,当我点击它而不用id引用它时(我不知道它的id是什么,因为它只是在许多中点击的按钮)。 任何人都可以解释如何做到这一点吗?

3 个答案:

答案 0 :(得分:5)

onclick="clickMe(this)">

这将传递对单击元素的引用,然后您可以从元素中获取/设置您通常可以执行的任何操作,例如:

function clickMe(el) {
  el.value = "Hi"; // set
  alert(el.value); // get
}

Demo

注意:不允许调用函数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');
}

FIDDLE

答案 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>