2010-06-29 79 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