jquery字符串到函数转换

Val*_*Val 2 jquery attr

这可能吗?

<div id="anything">I will change</div>
<div id="id" jq="$('#anything').css({background: 'red'})"></div>

var x = '$('#id').attr('jq')';
jQuery.call(x);
Run Code Online (Sandbox Code Playgroud)

基本上我想jq在任何标签上使用一个属性就像onclick调用javascript语句的html上的一样.

顺便说一句jQuery.call()用于演示目的它不起作用...

Dou*_*ner 8

您会使用,eval()但您正在做的事情似乎是一个非常糟糕的主意:

var x = $('#id').attr('jq');
eval(x);
Run Code Online (Sandbox Code Playgroud)

这个坏的原因是你没有将功能与结构分开.HTML旨在描述结构,而不是交互性和功能.

JavaScript旨在提供交互和增强,但不提供结构.像这样使用jQuery内联违反了这种分离.只是值得深思...


小智 7

您可以使用新的功能MDN

身体:

<div id='MyFunc' func="alert('Hello!');" >On Load raise an Alert</div>
Run Code Online (Sandbox Code Playgroud)

JS:

var myFunc = myFunc || document.getElementById('MyFunc'),
        hello = new Function( myFunc.getAttribute('func'));
    hello.call(this);
Run Code Online (Sandbox Code Playgroud)

试试看:

http://jsfiddle.net/msLsy/

希望能帮助到你!