2010-06-29 78 views
0

結果(data)看起來是這樣的:解析JavaScript對象從阿賈克斯返回HTML

<tr> 
    <td> 
     Something... 
    </td> 
</tr> 

<div id="paging">1, 2, 3... </div> 

這是阿賈克斯

... 
dataType: "html", 
success: function(data) { 
    parse data...  
    $('#myDiv1').html(data1); 
    $('#myDiv2').html(data2); 
} 
... 

是否可以解析data使data1包含錶行(S )和data2包含div#paging的內容?

由於提前,
伊利亞·

回答

2

嘗試..

var data1 = $(data).find('tr'); 
var data2 = $(data).find('div#paging'); 

編輯:

爲Guffa,在下面的評論中提到,你不能分析它,如果HTML結構破...但我懷疑你得到的不止是那些代碼......無論如何,here's a demo

+0

當我警報數據1或數據2我只看到的翻譯: – 2010-06-29 08:42:56

+0

@ile這是沒有錯的。你嘗試過'html()'它們嗎? – Agos 2010-06-29 08:45:31

+0

如果你想嘗試提醒,例如'alert(data1.html());' – Reigel 2010-06-29 08:45:49

-1

由於HTML代碼不完整,它不能簡單地被瀏覽器解析。你必須手動解析它。

例如:

var match = /(<tr>.+</tr>)\s*(<div.+</div>)/.exec(data) 
var data1 = match[1]; 
var data2 = match[2]; 
+0

-1用正則表達式解析html,同時忽略選擇器引擎。 – Agos 2010-06-29 08:44:28

+0

@Agos:正如我在答案中所說的,**不起作用**。由於HTML不完整,你**不能**以這種方式解析,因此可以不**使用選擇器引擎。 – Guffa 2010-06-29 08:47:45