我有一堆 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());
});
这不起作用,'specicDiv' 中的所有脚本都被 jQuery 剥离。
JQuery 正在用所有脚本剥离它所做的垃圾来杀死我。
谢谢
最佳答案
这是因为它试图在 #specicDiv
的对象中查找脚本标记,而不是其具有标记名作为脚本的子元素。
过滤器从所选元素中选择元素的子集。这里是#specicDiv
。
您需要将过滤器函数修改为:
$(response).filter("#specificDiv script").each(function (i) {
eval($(this).text());
});
关于javascript - 从特定 div 过滤并执行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36786137/