2011-03-09 64 views
0

我有一個返回HTML的負載,與一些div一個ajax功能。

Internet Explorer喜歡將html註釋作爲結果[i]循環的一部分返回。他們沒有ID,所以它抱怨說「對象不支持這個屬性或方法」。

如果我刪除了評論,IE工作正常。但是,評論是有用的。我不想刪除它們。

Firefox的正常工作所有的時間。

有沒有更好的方法來寫這個?

$.ajax({ 
    type: "GET", 
    url: ajaxUrl, 
    async: async, 
    success: function(result){ 
     //Cycling through result DOM 
     for (i=0;i<$(result).length;i++) { 
      $('#'+$(result)[i].id).html($(result)[i].innerHTML); 
     } 
    } 

編輯: 這是一些簡化的HTML代碼的AJAX請求返回。我關閉了所有的數據,使其更易於調試。

<!-- this comment breaks everything --> 
<div id="nav"> 
    <div id="nav_inner"> 
     <ul> 
      <li class="first "><a href="http://localhost/onlinecatalogue/index.php/browse">Browse</a></li> 
      <li class="nav_on"><a href="http://localhost/onlinecatalogue/index.php/search">Search</a></li>   
      <li class=""><a href="http://localhost/onlinecatalogue/index.php/contact">Contact</a></li>  


     </ul> 

     <div id="simple_search"> 
      <form name="simpleform" action="search" method="post"> 
      <fieldset class="simple_search"> 
       <input class="simple_input grey" type="text" id="search_box" name="search_box" value="kelly"/> 
       <input type="submit" class="k_button simple_button" value="Search" /> 
      </fieldset> 
      </form> 
     </div> 

    </div> 
</div> 
<div id="ajax"><div id="search_content"> 
    <div id="search_container"> 
    </div> 
    <div id="results"> 
    </div> 
</div> 
</div> 
+0

什麼是Ajax調用的原始響應? – JamesHalsall 2011-03-09 12:24:07

+0

看到我最近的編輯 – colinjwebb 2011-03-09 12:49:05

回答

0

對於一個快速的黑客,你可以只檢查,如果做任何事情之前存在result[i].id

if(tyepof result[i].id !== 'undefined' && result[i].id !== null) 
    $('#'+$(result)[i].id).html($(result)[i].innerHTML); 

但如果你只是給這些結果含住父元素,你可以做的更好:

$('#parent').html(result); 

你可能有,要futz,但你的想法。

+0

第一部分似乎並不奏效 - 我會進一步調查。至於第二部分,我已經提出了這個想法,但代碼將有幾個不同的父母進行更新 - 如果我添加另一個,我一定會忘記將它包含在該代碼中! – colinjwebb 2011-03-09 13:16:45

相關問題