2012-09-07 46 views
3

我傳遞一個字符串,其中一些類包含在一個字符串(IMG)的HTML標記的表爲HTML。轉換後,使用innerHTML附加此表可以在Chrome和FF中很好地工作,但不能用於IE。IE不轉換字符串使用jquery

這裏是一個看起來像這樣的代碼:

var dfd = $.Deferred(); 
     var requestParams = {}; 
     templatingIsDone = jsonRequest(ResolveUrl("~/Results/ResultsService.asmx/GetMostRecentUploadsService"), requestParams).success(function (data) { 
      if (data.Success == true) { 
       var jheaderResults = $("#jobheaderResults tbody"); //HTML Markup 
       try { 
        jheaderResults.empty(); 
        var results = data.Results; 

        $.tmpl("jobHeaderTemplate", data.Results).appendTo(jheaderResults); 

        var allCaterLinks = $(".CaterRequestLinking"); 
        $.each(allCaterLinks, function (index, value) { 
         if ($.browser.msie) { 
          value.innerHTML = value.innerText; 
         } else { 
          value.innerHTML = value.textContent; 
         } 
        }); 

        $("#jobheaderResults tbody").trigger("update"); 

結果顯示在表「jobheaderResults」它在Firefox和Chrome圖像。但是IE不會渲染圖像,而是顯示html標記。我如何將其轉換爲HTML?

我也曾嘗試下面的代碼,但無濟於事:

    //value.innerHTML = value.empty().html(value.innerHTML); 
        //value.innerHTML = value.textContent; 
        //value.innerHTML = value.innerHTML.html(); 
        //value.html(value.innerText); 
        //value.innerHTML = value.outerText; 

以上都不工作,都失敗了要呈現的圖像到IE。

對於額外的信息,我試圖轉換實際的標記是:

"<a href=\"#\" class=\"caterReqClass\"><img src=\"/HWVDB/images/Cater-Icon.jpg\" alt=\"CaterReqAlternate\"/></a>" 
+0

http://support.microsoft.com/kb/276228 我想起了什麼前陣子關於innerHTML的IE中失敗。解決方法是將DOM中的元素和.appendChild抓取到它。你試過了嗎? – Brant

+0

我試過使用jquery append函數,但在$ .each函數下它只是失敗。沒有嘗試DOM元素的.appendChild函數,會給這個鏡頭。我希望留下來的jQuery – adic26

回答

1

試試這個

$.each(allCaterLinks, function() { 
     $('.allCaterLinks').html($('.allCaterLinks').text()); 
    }); 

這應該在所有的瀏覽器。從jQuery.com:「這(html的())方法使用瀏覽器的innerHTML屬性某些瀏覽器可能不會返回HTML恰好複製原始文檔中的HTML源代碼。例如,有時Internet Explorer會離開關引號的屬性值。如果它們只包含字母數字字符。「

+0

我先試試這個的範圍內,並使用IE調試後抱怨道: 對象不支持屬性或方法「文本」 這個我也試過之後:value.html( value.innerText); 對象不支持屬性或方法「HTML」 – adic26

+0

也確認,我使用IE9。當然,我所有的jquery庫都包含在內。 – adic26

+0

這可能是因爲你正在使用函數本身的值。我認爲你可以使用$('。allCaterLinks')。html($('。allCaterLinks')。text());因爲您不需要從選擇器的特定索引中獲取值。 – ORION