jquery字符串函数转换
问题描述:
这是可能的吗?jquery字符串函数转换
<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
任何标记像在HTML中onclick
会调用JavaScript语句。
BTW jQuery.call()是用于演示目的,不工作...
答
你会使用eval()
但你在做什么似乎是一个非常糟糕的主意:
var x = $('#id').attr('jq');
eval(x);
的这是不好的原因,你是不是从结构上分离功能。 HTML意在描述结构,而不是交互性和功能。
JavaScript旨在提供交互和增强,而不是结构。像这样内嵌jQuery是违反了这种分离。只是精神食粮......
答
您可以使用新的功能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);
试试看:
希望它有帮助!
我不知道我真的明白这一点。我想让jq attrbute携带js/jQuery指令,并将它们解释为如果它被写在
的确,jQuery的吸引力之一就是它可以很容易地编写与HTML很好地分离的代码。将代码放回标记(以及使标记同时无效)似乎不是一个进步。 – bobince 2010-01-13 22:16:22
以及有我的问题...我试图使用ajax与源'example.html'来获取页面,但在example.html如果有一个标记'' 由于安全原因,这总是被阻止......所以这是我唯一能够实现这一点的唯一方法,我猜 – Val 2010-01-13 22:23:22