繁体   English   中英

jquery ajax 响应为 html,但无法操作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM