簡體   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