jquery字符串到函数转换

时间:2010-01-13 22:03:54

标签: 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);

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

btw jQuery.call()用于演示目的,它不起作用......

2 个答案:

答案 0 :(得分:8)

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

var x = $('#id').attr('jq');
eval(x);

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

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

答案 1 :(得分:7)

您可以使用新功能MDN

体:

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

JS:

var myFunc = myFunc || document.getElementById('MyFunc'),
        hello = new Function( myFunc.getAttribute('func'));
    hello.call(this);
试一试:

http://jsfiddle.net/msLsy/

希望它有所帮助!