1. ホーム
  2. ジャバスクリプト

[解決済み】onclick関数で文字列のパラメータを渡したい

2022-04-03 02:58:37

質問

Onclick関数にパラメータ(文字列)を渡したい。

とりあえず、こんな感じでやってます。

'<input type="button" onClick="gotoNode(' + result.name + ')" />'

で、例えばresult.nameが文字列 "Add"に等しい場合。

このボタンをクリックすると、次のようなエラーが発生します。 Add is not defined" . この関数呼び出しは数値パラメータでは完全に動作するので、文字列内の記号 "" と関係があるのだと思います。

どうすればこの問題を解決できますか?

解決方法は?

文字列からDOM要素を構築しているように見えます。result.nameの周りに引用符を追加すればいいだけです。

'<input type="button" onClick="gotoNode(\'' + result.name + '\')" />'

しかし、これは本当に適切なDOMメソッドで行うべきものです。

var inputElement = document.createElement('input');
inputElement.type = "button"
inputElement.addEventListener('click', function(){
    gotoNode(result.name);
});

​document.body.appendChild(inputElement);​

ただ、これがループだったりすると、注意が必要です。 result がイベント発生前に変更された場合、変更された変数をシャドウするために追加のスコープバブルを作成する必要があります。