Javascript IE不使用jquery将字符串转换为HTML
我将一个字符串传递给一个表,其中一些类包含字符串中的html标记(img)。转换后,使用innerHTML附加此表在chrome和FF中效果很好,但在IE中效果不好 下面是类似以下内容的代码:Javascript IE不使用jquery将字符串转换为HTML,javascript,jquery,internet-explorer-9,innerhtml,Javascript,Jquery,Internet Explorer 9,Innerhtml,我将一个字符串传递给一个表,其中一些类包含字符串中的html标记(img)。转换后,使用innerHTML附加此表在chrome和FF中效果很好,但在IE中效果不好 下面是类似以下内容的代码: var dfd = $.Deferred(); var requestParams = {}; templatingIsDone = jsonRequest(ResolveUrl("~/Results/ResultsService.asmx/GetMostRecentUpl
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");
结果显示它在Firefox和Chrome中的图像在“jobheaderResults”表中。但是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>"
“”
试试这个
$.each(allCaterLinks, function () {
$('.allCaterLinks').html($('.allCaterLinks').text());
});
这应该适用于所有浏览器。来自jQuery.com:“此(.html())方法使用浏览器的innerHTML属性。某些浏览器可能不会返回与原始文档中的html源完全相同的html。例如,如果属性值仅包含字母数字字符,Internet Explorer有时会在属性值周围省去引号。”我记得不久前关于innerHTML在IE中失败的一些事情。解决方法是在DOM中获取元素并将.appendChild添加到其中。你试过了吗?我试过使用jqueryappend函数,但是在$下,每个函数都失败了。尚未尝试DOM元素中的.appendChild函数,将对此进行尝试。我希望留在jqueryI的范围内。在使用IE调试器之前和之后,我都尝试过:对象不支持属性或方法“text”,在此之后,我也尝试过:value.html(value.innerText);对象不支持属性或方法“html”,也要确认,我使用的是IE9。当然,我所有的jquery库都包含在内,这可能是因为您使用的是函数本身的值。我想你可以不用使用$('.allCaterLinks').html($('.allCaterLinks').text());因为您不需要从选择器的特定索引中获取值。显然,更改为IE9查看器并将代码更改为
code
value.innerHTML=value.innerText确实有效!!但仅在IE9视图中,IE9以下的任何内容似乎都不会渲染图像