Javascript Jquery:在Jquery的(字符串)变量中执行Jquery脚本

Javascript Jquery:在Jquery的(字符串)变量中执行Jquery脚本,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我知道这是一个令人困惑的问题。请让我详细说明 我需要执行一个jquery脚本,该脚本编写在从ajax请求获得的文本文件中 e、 我从ajax请求中获得以下代码 ($($("#jstreeblock").children().children().children()[0]).children('li').attr('id')) 我需要执行上述脚本并将其结果存储在一个变量中 另一个简单的例子。 我得到了 'a'+'b' 如果我执行上面的脚本,结果将是ab,但如果我使用eval运行它,则会出现错

我知道这是一个令人困惑的问题。请让我详细说明

我需要执行一个
jquery脚本
,该脚本编写在从
ajax
请求获得的文本文件中

e、 我从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>
是给定错误,如下所示

错误

VM157982:1未捕获的语法错误:意外字符串(…)(匿名) 函数)@VM157981:2导入脚本。\u evaluateOn@ VM156978:878InjectedScript.\u evaluateAndWrap@ VM156978:811InjectedScript.evaluate@VM156978:667


请提供帮助并表示衷心感谢

通常情况下,
eval
在这种情况下应该可以正常工作。但我真的不知道你怎么称呼它。你说你把它叫做
eval('a'+'b')
,应该是
eval('a'+'b')
。这也可能是原因

现在,关于
eval
,按照@Sosdoc的建议使用它是一个危险的想法。然而,为了解决您的问题,请检查这里,我有一个模拟的
json
响应,
eval
工作正常。我还添加了[注释]您的
“'a'+'b'
案例。你也可以检查一下。结果应该是
ab

还可以从user@Chocula中找到这个极好的答案,以了解更多信息

作为DOM文本插入的JavaScript将不会执行。但是,您可以使用 实现目标的动态脚本模式。基本思想是 将要执行的脚本移动到外部文件中,然后 在获得Ajax响应时创建脚本标记。然后设置 src属性,它加载并执行 外部脚本


创建一个
标记,将您的代码附加到其中,将整个
脚本
元素附加到当前文档的主体。如果可能,最好避免执行您收到的脚本,劫持者可能会执行恶意代码。如果可能的话,试着发送数据,然后根据收到的数据做一些事情。
eval(''a'+'b'')