2011-08-24 71 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