Javascript 从特定div筛选并执行脚本
我有一堆html(div和脚本)作为ajax响应。目前,我可以过滤所有脚本并按如下方式执行: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
$(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,我不确定这是否是正确答案,但你解决了我的问题,哈哈