Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从特定div筛选并执行脚本_Javascript_Jquery - Fatal编程技术网

Javascript 从特定div筛选并执行脚本

Javascript 从特定div筛选并执行脚本,javascript,jquery,Javascript,Jquery,我有一堆html(div和脚本)作为ajax响应。目前,我可以过滤所有脚本并按如下方式执行: $(response).filter("script").each(function (i) { eval($(this).text()); }); 我需要的是一种只从响应中的特定DIV执行脚本的方法。我该怎么做?如果我这样做,JQuery似乎会删除所有脚本: $(response).filter("#specificDiv").filter("script").each(functi

我有一堆html(div和脚本)作为ajax响应。目前,我可以过滤所有脚本并按如下方式执行:

$(response).filter("script").each(function (i) {
        eval($(this).text());
});
我需要的是一种只从响应中的特定DIV执行脚本的方法。我该怎么做?如果我这样做,JQuery似乎会删除所有脚本:

$(response).filter("#specificDiv").filter("script").each(function (i) {
                            eval($(this).text());
                        });
这不起作用,jQuery将从“specificDiv”中删除所有脚本

JQuery做的所有脚本剥离废话都快把我累死了


感谢

这是因为它试图在
#specificDiv
的对象中查找脚本标记,而不是它的子元素,这些子元素将标记名作为脚本。 过滤器从选定图元中选择图元的子集。这是这里的specificDiv

您需要将过滤器功能修改为:

 $(response).filter("#specificDiv script").each(function (i) {
                        eval($(this).text());
                    });

这似乎是可行的,您能评论一下为什么jQuery1.8.3不能使用它吗?@AzureCloudDev:这与版本无关。你把find和filter事件搞混了。实际上这似乎不起作用,在eval之前放一条alert语句,它不会执行。但现在我的代码可以工作了,因为在我只获取Html之前,当我执行$(text.filter('specificDiv').Html()时;要为“specificDiv”获取新的html,它正在剥离所有脚本,现在我获取html&script,脚本将自动执行!我所做的只是将jQuery版本从1.8.3改为1.12.3.OMG,我不确定这是否是正确答案,但你解决了我的问题,哈哈