我有一个想要解析标签的ajax响应,我只想在特定的div id中找到脚本标签。下面将捕获并运行页面中的每个javascript:
success: function(data) {
var dom = $(data);
dom.filter('script').each(function(){
var obj = $(this);
$('#my_div').append(obj);
});
},
当我尝试首先按div id过滤,然后按脚本过滤它不会附加任何内容。我明显可以访问reponse 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>
答案 0 :(得分:1)
我可以看到&#39; js_outer_div&#39;中应该有多个标签。格
如果js_outer_div
是类名,则filter
方法应为:
dom.filter('.js_outer_div')...
但不,它没有解决问题。 filter
方法过滤集合中的顶级元素。 jQuery集合不是平面的,它保留了元素层次结构。您应该使用find
方法。当find
方法选择集合中包装元素的后代时,您可以生成div
元素并使用html
方法使用{{1}设置其内容变量。现在data
方法无论目标find
是否是顶级元素,都可以使用。
div.js_outer_div
答案 1 :(得分:0)
您可以使用#add www. if missing WORKS
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301]
#force SSL/https WORKS
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/webshop2/localize\.php
RewriteCond %{REQUEST_URI} !^/webshop2/layoutstripper\.php
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#force http DOES NOT WORK
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/webshop2/localize\.php [NC]
RewriteCond %{REQUEST_URI} ^/webshop2/layoutstripper\.php [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
代替find
。
filter
现在这实际上不会选择任何东西,除非你在某个地方有var dom = $(data);
dom.find('js_outer_div script').each(function(){
var obj = $(this);
$('#my_div').append(obj);
});
标签。大概你需要在find语句中将<js_outer_div>
更改为js_outer_div
或.js_outer_div
。