8

カスタム データ属性を持つ関数を渡すことは可能ですか?

これは動作しません:

<div data-myattr="hello();">
</div>
function hello(){
    console.log('hello');
}

属性を取得すると、値が「hello();」の文字列になります。関数の代わりに。これを解決する方法は?

4

4 に答える 4

16

次のように実行できます。

<div data-myattr="hello"></div>
function hello(){
    console.log('hello');
}

function executeFunctionFromData(){
    var d = 'hello' // Save `data-myattr` to d; (Obviously, this is just a hardcoded value as an example)
    window[d](); // Execute the function.
}

これが機能するのは、関数helloがグローバル スコープで定義されているためです。つまり、windowオブジェクトのプロパティです。

于 2013-01-03T15:31:26.357 に答える
0

eval を使用:

eval("alert('hello');");

こんにちはを表示します。

于 2013-01-03T15:30:42.127 に答える