2013-07-23 116 views
-1

我將提取表格的整個html代碼用於頁面。這是我的代碼。從ajax響應中提取表格

$(document).ready(function() { 
     alert("Hello"); 
     $.ajax(
     { 
     url: '/Member/DownloadUrlData', 
     type: "POST", 
     dataType: "html", 
     async: true, 
     cache: false, 
     beforeSend: function (request) { 

     }, 
     success: function (data) { 

      alert(data); 
      var theHtml = $(data).filter('#container>table:first').html(); 
      $("#rData").append(theHtml); 

     }, 
     error: function (xmlHttpRequest, textStatus, errorThrown) { 
        }, 
     complete: function (xmlHttpRequest, textStatus) { 
     } 
    }); 
    }); 

,但我不能提取錯誤日誌中所示的table.the問題是jquery的cannt訪問「」中的數據。我如何刪除這個。

+0

'jQuery'會自動刪除任何不必要的標籤,如'html','head'和'body' – Spokey

+1

究竟是什麼問題?你得到什麼?你想得到什麼?哪裏?什麼時候?怎麼樣?爲什麼? – JotaBe

+1

請告訴我們你在'data'中得到了什麼 – Spokey

回答

2

問題是這一行:

var theHtml = $(data).filter('#container>table:first').html();

$(data)將公開body元素的直接孩子的所有孩子,但#container>table:first不能成爲body元素的子元素,因爲table明確是#container的孩子。

也許你的意思是?

var theHtml = $(data).filter('#container').children('table:first').html();

編輯:針對該理論認爲data返回的格式不正確HTML:

如果jQuery的時候,它會分析$(data)返回一個語法錯誤,這意味着HTML的格式不正確。問題是,jQuery的可以接受各種參數:$()將功能不同,這取決於它是否給出:

  • 一個選擇
  • XML或HTML
  • 函數

如果XML或HTML字符串格式不正確,它會嘗試將其解釋爲選擇器 - 這會導致錯誤。迫使它解析爲HTML,使用下面的表達式:

$.parseHTML(data)

代替

$(data)

但最好你就不必這樣做:問題的根源用AJAX請求返回的HTML,這可能會導致其他地方出現打嗝。我建議通過validator傳遞該響應,以查看是否可以通過標記糾正問題。

+0

對不起,這是行不通的? – ParVathi

+0

'$(data)'返回什麼?'$(data).filter('#container')'返回什麼?幫助我們幫助你! – Barney

+0

data返回整個html和$(data).filter('#container')return語法錯誤,無法識別!Doctype html – ParVathi