onclick関数に文字列パラメータを渡す 質問する

onclick関数に文字列パラメータを渡す 質問する

Onclick 関数にパラメータ (つまり文字列) を渡したいと思います。

今のところ、私はこうしています:

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

たとえば、result.name は文字列「Add」に等しくなります。

このボタンをクリックすると、 「Add が定義されていません」というエラーが表示されます。この関数呼び出しは数値パラメータで完全に機能するため、文字列内の記号「」と関係があると思われます。

この問題を解決するにはどうすればいいでしょうか?

ベストアンサー1

文字列から 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イベントが発生する前に変更されるため、変化する変数をシャドウイングするために追加のスコープ バブルを作成する必要があることに注意してください。

おすすめ記事