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