![](/img/trans.png)
[英]Executing javascript mixed with HTML from a jQuery ajax response
[英]Jquery/javascript, filtering html object from ajax response
我有这块html:
<div id="1">
<div class="text">
Text for div 2
</div>
<img src="images/image1.jpg"></img>
</div>
<div id="2">
<div class="text">
Text in div 2
</div>
<img src="images/image2.jpg"></img>
</div>
我用 simple.ajax-call 抓取
var html = $.ajax({
url: "htmlsnippet.html",
cache: false,
async: false,
dataType: "html"
}).responseText;
如果我过滤它:
var htmlFiltered = $(html).filter("#1");
它工作得很好,我得到了 id="1" 的整个 div,
但如果我使用:
var htmlFiltered = $(html).filter("#1 .text");
htmlFiltered 变量是一个空的 object。 我无法弄清楚我做错了什么。
你应该这样存储它:
$.ajax({
url: "htmlsnippet.html",
cache: false,
async: false,
dataType: "html",
success: function(data){
html = data;
}
}
编辑:您获得 html 的方式有效,但不推荐。
你不能抓住你的最后一个元素,因为你使用的是filter
而不是find
,所以你应该有:
var htmlFiltered = $(html).find("#1 .text");
代替
var htmlFiltered = $(html).filter("#1 .text");
W3C 也建议不要使用数字 ID。
编辑2 :这应该工作:
var htmlFiltered = $(html).filter("#1").find(".text");
希望这可以帮助。 干杯
如果您不需要完整的$.ajax
方法提供的任何特殊功能,您应该尝试 $.load $.load()
:
.load() 方法与 $.get() 不同,它允许我们指定要插入的远程文档的一部分。 这是通过 url 参数的特殊语法实现的。 如果字符串中包含一个或多个空格字符,则假定字符串中第一个空格后面的部分是确定要加载的内容的 jQuery 选择器。
$('#result').load('ajax/test.html #container');
这对我有用:
$.get(url,function(content) {
var content = $(content).find('div.contentWrapper').html();
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.