Jquery:在Jquery的(字符串)变量中执行Jquery脚本
Jquery: Execute jquery script in a (string)variable from jquery
我知道这个问题有点令人困惑。请允许我详细说明。
我需要执行一个写在文本文件中的jquery script
,该文件是我从ajax
请求中获得的。
例如,我从ajax请求获得以下代码
($($("#jstreeblock").children().children().children()[0]).children('li').attr('id'))
我需要执行上述脚本并将结果存储在一个变量中。
作为另一个简单的例子。我有
'a'+'b'
如果我执行上面的脚本,结果将是ab
,但如果我用eval
运行它,我会得到错误
脚本
<script>
var a = "'a'+'b'"
console.log(a); // printing 'a'+'b'
eval(a); // it should give ab but not giving any result
</script>
如果我将其作为运行
eval(''a'+'b'')
给出错误,在下方给出
错误
VM157982:1未捕获语法错误:意外的字符串(…)(匿名函数)@VM157981:2InjectedScript_评估On@VM156978:878注入脚本_评估和包装@VM156978:811 InjectedScript.evaluate@VM156978:667
请帮忙,非常感谢
通常eval
在这种情况下应该工作。但真的不确定你是怎么称呼它的。你说你叫它eval(''a'+'b'')
,应该是eval("'a'+'b'")
。这可能也是原因。
现在,对于eval
,按照@Sosdoc的建议使用它是一个危险的想法。然而,为了解决您的问题,请检查这个小提琴,我有一个模拟的json
响应,eval
工作正常。我还添加了[评论]您的"'a'+'b'"
案例。你也可以检查一下。结果应该会给你ab
。
在这里也可以从用户@Chocula找到这个极好的答案来了解更多关于这个的信息,
作为DOM文本插入的JavaScript将不会执行。但是,您可以使用实现目标的动态脚本模式。基本思想是将要执行的脚本移动到外部文件中,然后当您得到Ajax响应时,创建一个脚本标记。然后设置脚本标记的src属性和voila,它加载并执行外部脚本。
- jQuery变量错误
- HTML 按钮点击函数无法使用 jQuery 变量作为参数
- angularjs:访问angular控制器中的jquery变量
- 使用jquery变量作为.net MVC中ActionLink的参数
- 如何插入js/jquery变量isideHTML标记
- Jquery变量类型问题
- 带有.css()串联问题的jQuery变量
- .validate规则:检查jquery变量
- 检索本身包含变量的 Jquery 变量名的值
- 简单的 Jquery 变量问题
- 使用带有返回的 Jquery 变量的正确语法
- 动态jQuery变量名
- 从jQuery变量中提取数据,增加's left,将剥离的数据放回变量中
- 当chrome检查器为jQuery变量返回[object object]时,如何返回实际数据
- 无法将jQuery变量集成到php中
- jQuery变量$$符号是什么意思
- 如何获取 jquery 变量 childeren
- 对API字符串中的JQuery变量使用split()
- Jquery变量错误
- 使用easyscroll时,jquery变量在url中没有更改