[英]jquery ajax response is html, but can't manipulate it
我基本上是在尝试处理在 html 中发送的服务器响应。 我想计算服务器发回的 DOM 片段中存在的一些元素。 然而,当我这样做时:
$.ajax({
url: '/myAjaxUrl',
type: "POST",
data : params,
dataType: 'html',
success: function(data){
var total = $(data).find('li').length;
console.log(total);
}
});
我的 var 总数为 0。Firefbug 显示正确的 html,并且片段包含<li/>
元素。 我哪里错了?? 哦??
以下是发送的响应标头:
Date Tue, 03 May 2011 12:52:55 GMT
Server Apache/2.0.64 (Unix) PHP/5.3.5 DAV/2
X-Powered-By PHP/5.3.5
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
X-Robots-Tag noindex,nofollow
Keep-Alive timeout=15, max=99
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/html
部分 HTML 回答:
<li >
<div class="">
<a class="lookVisu" href="" rel="noindex,nofollow">
[...]
</li>
.find
搜索集合中元素的后代。
您的 HTML 可能有<li>
元素作为顶层,因此.find
找不到它们。
如果是这样,您可以使用.filter
来搜索元素本身,而不是它们的后代。
或者,您可以将 HTML 包装在一个虚拟元素中,以将所有元素转换为后代。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.