2011-08-24 40 views
0

我试图在异步发布成功后更新页面的一部分。从jquery中选择成功结果

所以我必须:

success: function (data, status, xhr) { 
     var elementName = "#div" + gridName; 
     var findResult = $(data).find(elementName); 
     $(elementName).html($findResult); 

现在,当我查看数据的HTML看起来像:

<div class="t-grid-header"> 
<div class="t-grid-header-wrap"> 
<table cellspacing="0"> 

,但是当我从findResult检查HTML,它看起来像:

<DIV class=t-grid-header> 
<DIV class=t-grid-header-wrap> 
<TABLE cellSpacing=0> 

这不是'好'的Html,所以我不能使用它。那么如何获得好的HTML。 findResult.html()不起作用,因为通话太晚。转换已经发生。

我该如何继续?

+0

by'good'你的意思是小写吗?你从哪里得到这个HTML? – hunter

回答

0

我猜你在使用IE9之前的某个版本的IE。当你在旧版本的IE中获取innerHTML时,结果看起来与你输入的内容非常不同(包括大写,属性引用,属性顺序等等)。这是IE的这些老版本所做的。

幸运的是,任何创建该innerHTML的浏览器在获取它时都会在设置时接受该innerHTML,因此您不必担心。在非IE浏览器(或IE9)中试试这个,我不认为你会看到同样的事情。

+0

感谢这个问题解决了。我现在可以继续下一步。 – Sigur

0

你为什么在意“html”是错的?如果是因为爬虫,不要担心。他们不在页面上使用JavaScript。

+0

从数据中找到的HTML将替换页面上的HTML。 HTML需要正确才能在页面上显示正确。如果不是,CSS将不会正确应用,甚至根本不会。 – Sigur