这可能吗?
<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()用于演示目的,它不起作用......
答案 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);
试一试:
希望它有所帮助!