评估JQUERY语句

时间:2011-09-28 08:46:09

标签: javascript jquery

我使用这种脚本来评估我在DOM中注入的javascript代码

function wilEval(source) {

  if ('function' == typeof source) {
    source = '(' + source + ')();'
  }
  var script = document.createElement('script');
  script.setAttribute("type", "text/javascript");
  script.textContent = source;
  document.body.appendChild(script);

  if (window.execScript) {
         window.execScript(source);
  }

}

它可以在IE和其他主流浏览器中运行但我的问题是要评估的代码是像这样的jquery代码$("#<?php echo "utm".$thr_id; ?>").effect("highlight", {}, 1000);那么如何像普通的javascript代码一样评估它?感谢

P.S。 php echo只生成一个动态元素id =)

2 个答案:

答案 0 :(得分:2)

您可以做的一件事是使用globalEval()

function wilEval(source) {

  if ('function' == typeof source) {
    source = '(' + source + ')();'
  }


  if (window.execScript) {
     var script = document.createElement('script');
     script.setAttribute("type", "text/javascript");
     script.textContent = source;
     document.body.appendChild(script);
     window.execScript(source);
  }else{
     jQuery.globalEval(source);
  }

}

答案 1 :(得分:0)

因此,您的代码不是函数,而是statement

然后,将其包裹起来:

(function () { YOUR STATEMENT }());