Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何引用';已单击而不是通过其id_Javascript - Fatal编程技术网

Javascript 如何引用';已单击而不是通过其id

Javascript 如何引用';已单击而不是通过其id,javascript,Javascript,我想编写javascript代码,识别单击了哪个按钮并更改其标签。网页上有多个按钮,因此不可能通过其id来引用它。只能通过单击它来识别它。 我看到一个关于堆栈溢出的讨论,建议写 <input type = "button" value = " " id ="3" onclick="click(event)"> 然后尝试更改按钮的值。它不起作用。我只想当我点击一个按钮时,它的标签会改变,而不需要通过id来引用它(我不能告诉它的id是什么,因为它只是在许多按钮中点击的按钮)。 有人能解

我想编写javascript代码,识别单击了哪个按钮并更改其标签。网页上有多个按钮,因此不可能通过其id来引用它。只能通过单击它来识别它。 我看到一个关于堆栈溢出的讨论,建议写

<input type = "button" value = " " id ="3" onclick="click(event)">
然后尝试更改按钮的值。它不起作用。我只想当我点击一个按钮时,它的标签会改变,而不需要通过id来引用它(我不能告诉它的id是什么,因为它只是在许多按钮中点击的按钮)。
有人能解释一下怎么做吗?

this
关键字作为参数传递,并使用数据属性保存新值:

html:

<input type="button" value=" " id="a3" data-value="test" onclick="func(this)">

这将传递对单击元素的引用,然后您可以从该元素获取/设置通常可以获取的任何内容,例如:

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


注意:不允许调用函数
click()
,因为它是一个保留关键字(就像您不会有一个名为
function()
的函数一样,这就是为什么我将其设置为
clickMe()

设置为浏览器单击的按钮:

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

函数clickhandler(){
this.value=“foo”//按钮的标签现在是foo
console.log(this.id);//将打印按钮的id
}

请显示您尝试过的js,该js在您的站点上不可用jQuery?传递另一个参数您应该使用
var button=this;
我试图复制您的问题,发现使用函数名
click
不起作用。似乎您需要将其命名为其他名称才能获得
onClick
事件触发。然后听从安迪和阿德内奥的建议。
onclick="clickMe(this)">
function clickMe(el) {
  el.value = "Hi"; // set
  alert(el.value); // get
}
<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>