3

どのボタンがクリックされたかを認識してそのラベルを変更するJavaScriptコードを書きたいと思います。Web ページには複数のボタンがあるため、ID で参照することはできません。クリックされたという事実によってのみ識別されます。書き込みを提案するスタックオーバーフローに関する1つの議論を見ました

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

Web ページでclickを 1 つの引数を持つ関数として定義し、それを ev と呼びましょう。次に、(関数内で)それを参照しました

var button = ev.target;

ボタンの値を変更しようとしました。うまくいきませんでした。IDで参照せずにクリックすると、ボタンのラベルが変更されるようにしたいだけです(多くのボタンの中でクリックされただけなので、IDが何であるかわかりません)。誰でもこれを行う方法を説明できますか?

4

3 に答える 3

5
onclick="clickMe(this)">

これにより、クリックされた要素への参照が渡され、通常は要素から取得/設定できるものをすべて取得/設定できます。

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

デモ

注:click()予約済みのキーワードであるため、関数の呼び出しは許可されていません(と呼ばれる関数がないのと同じようにfunction()、私はそれを作成しましたclickMe()

于 2013-07-04T15:53:12.160 に答える
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');
}

フィドル

于 2013-07-04T15:52:52.017 に答える
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>
于 2013-07-04T15:58:18.620 に答える