javascript - Internet Explorer innerHTML 输出不带引号的属性

标签 javascript jquery internet-explorer

我正在使用 IE 8 并尝试设置一个元素 Id 属性。然后我将该元素附加到父元素并检查它的 innerHTML。我看到的问题是 id 属性缺少双引号。起初我认为这可能是因为我正在使用 setAttribute 属性并且这在 IE 8 中可能是错误的,所以我使用 jQuery 来设置属性值但问题仍然存在。这是我的代码...

            var imgId="my" + val_imgarea + "img";
            var img=document.createElement('img');
            $(img).attr("Id",imgId);
            img.setAttribute('src',name);
            img.setAttribute('style',"width:100%;height:100%");
            $(img).click(function(){clic(imgId);});

            var input=document.createElement('input');
            input.setAttribute('type','text');
            input.setAttribute('id',name);
            input.setAttribute('style',"display:none");

            var parent=document.getElementById(newArea);
            parent.appendChild(img);
            parent.appendChild(input);

            alert($("#"+newArea).html());

输出是

<IMG id=my21img style="width:100%;height:100%" src="a/img.jpg" />

我需要带有 id 的双引号,然后我将这个 html 写入一个文件,然后一些其他应用程序读取它并导致问题导致缺少引号。

最佳答案

HTML 不要求属性用引号括起来,IE 8 和更低版本返回不带引号的属性,除非它们中有空格。解析此 HTML 的其他应用程序显然不是 HTML 解析器,如果它们是预期的,则需要修复它们的错误。

'In certain cases, authors may specify the value of an attribute without any quotation marks. The attribute value may only contain letters (a-z and A-Z), digits (0-9), hyphens (ASCII decimal 45), periods (ASCII decimal 46), underscores (ASCII decimal 95), and colons (ASCII decimal 58). We recommend using quotation marks even when it is possible to eliminate them.'

请注意,在您的输出中,您有一个结束斜杠 /<IMG 的末尾标签。 Internet Explorer 也没有将它们放入其中(我认为任何浏览器都没有)。这是 XML 惯用法,HTML 也不需要。

关于javascript - Internet Explorer innerHTML 输出不带引号的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7927905/

相关文章:

javascript - 使用 jQuery 查找和替换 HTML 字符串

javascript - 在 flask 应用程序中,如何根据 View 中发现的条件在 ajax 发布期间重定向到新页面?

javascript - JavaScript 中高效的排序数据结构

javascript - 键盘启动时,Cordova ios WKWebView 第一个 touchstart 事件未触发

javascript - 跨域iframe问题

css - IE9 的表格间距问题

HTML div 没有到达 `embed` 对象的顶部 - IE

javascript - Clipboard.writeText() 不适用于 Mozilla 和 IE

javascript - tinymce 使用文件浏览器添加图像

javascript - 输入类型编号时如何防止 "0"作为第一个字符?