3

我将一个字符串传递给一个表,其中一些类在字符串 (img) 中包含 html 标记。在使用 innerHTML 附加此表的转换后在 chrome 和 FF 中效果很好,但在 IE 中效果不佳。

这是看起来像这样的代码:

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>"
4

1 回答 1

1

试试这个

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

这应该适用于所有浏览器。来自 jQuery.com:“此 (.html()) 方法使用浏览器的 innerHTML 属性。某些浏览器可能不会返回与原始文档中的 HTML 源完全相同的 HTML。例如,Internet Explorer 有时会省略属性值周围的引号如果它们仅包含字母数字字符。”

于 2012-09-07T19:05:32.447 回答