gpt4 book ai didi

javascript - jquery - 在两个 .filter() 之后获取脚本标签的问题

转载 作者:行者123 更新时间:2023-12-03 09:37:00 25 4
gpt4 key购买 nike

我有一个 ajax 响应想要解析标签,并且我只想在特定的 div id 中查找脚本标签。下面的代码将捕获并运行页面中的每个 JavaScript:

success: function(data) {
var dom = $(data);
dom.filter('script').each(function(){
var obj = $(this);
$('#my_div').append(obj);
});
},

当我尝试首先按 div id 过滤,然后按脚本过滤时,它不会附加任何内容。我显然可以访问响应 html,并且可以看到“js_outer_div”div 中应该有多个标签:

var dom = $(data);
dom.filter('js_outer_div').filter('script').each(function(){
var obj = $(this);
$('#my_div').append(obj);
});

不幸的是我无法控制响应 html。有没有办法像我想要的那样先按 div 过滤,然后按脚本过滤?

编辑:示例 html 响应:

... 
<div id="i9-content-div">
<script xmlns:efactions="http://www.enginframe.com/2009/efactions" xmlns:grid="http://www.enginframe.com/2000/GRID" type="text/javascript">
...
</script>
<script type="text/javascript">
...
</script>
</div>

最佳答案

I can see that there should be multiple tags in the 'js_outer_div' div

如果js_outer_div是一个类名,那么filter方法应该是:

dom.filter('.js_outer_div')...

但是不,这并不能解决问题。 filter 方法过滤集合中的顶级元素。 jQuery 集合不是扁平的,它保留了元素层次结构。您应该使用 find 方法。由于 find 方法选择集合中包装元素的后代,因此您可以生成 div 元素并使用 html 方法设置其内容使用data变量。现在,无论目标 div.js_outer_div 是否是顶级元素,find 方法都可以工作。

$('<div/>').html(data).find('.js_outer_div script').each(...)

关于javascript - jquery - 在两个 .filter() 之后获取脚本标签的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com