JQuery将在IE7和IE8中新创建的JQuery元素的开头添加回车和换行字符。发生了什么事?
使用JQuery 1.9.1版本的代码:
var myDiv = $('<div>');
alert('myDiv[0].outerHTML="' + myDiv[0].outerHTML + '"');
在IE8或IE7中执行时的输出结果:
"
myDiv[0].outerHTML=<div></div>"
您可以在此jsbin示例中进行复制,但请记住使用IE8或IE7模式。
与jquery无关,我可以告诉你这么多。它是底层JS引擎以及它如何处理事物。我的猜测是outerHTML
产品的HTML片段和IE7/8创建那些与换行符。由于根据规范,标签之间的空白没有考虑到文档流,如何实际生成HTML——即有或没有前导换行符;使用或不使用标签缩进等——实际上是由每个浏览器指定的。
http://jsbin.com/izemop/1/这个例子使用了实际文档中的div,并由DOM的getElementById
获取。您将得到相同的结果。
相对于javascript引擎。如果需要,可以使用$.trim()函数:
var myDiv = $('<div/>');
alert('myDiv[0].outerHTML="' + $.trim(myDiv[0].outerHTML) + '"');