仅IE6/7/8中innerHTML返回值忽略英文空格的问题
更新时间:2011年04月07日 21:47:07 作者:
仅IE6/7/8中innerHTML返回值忽略英文空格的问题,需要此问题的朋友可以参考下。
如下
<div id="user"> jack</div>
<script>
alert(document.getElementById('user').innerHTML.length);
</script>
div[id=user]中的文本"jack"前有两个英文空格,各浏览器下结果如下
IE6/7/8 : 弹出4,即忽略了空格
IE9/Firefox/Safari/Chrome/Opera : 弹出6,即没有忽略空格
另换成中文空格不会有这个问题。
以下是Gray Zhang的补充:
1、IE6-8下,对于一个元素的firstChild,如果其为TextNode,且nodeValue前n个字符为空格字符(包括空格、\t、\n、\r和一个分页符号U+000C),则这n个字符被忽略
2、在IE6-8下,对一个元素的lastChild,如果其为TextNode,且nodeValue最后n个字符为空格字符(包括空格、\t、\n、\r和一个分页符号U+000C),则这n个字符会被合并为一个空格(ASCII码为32),无论你是\t还是\n,都会变成一个空格
复制代码 代码如下:
<div id="user"> jack</div>
<script>
alert(document.getElementById('user').innerHTML.length);
</script>
div[id=user]中的文本"jack"前有两个英文空格,各浏览器下结果如下
IE6/7/8 : 弹出4,即忽略了空格
IE9/Firefox/Safari/Chrome/Opera : 弹出6,即没有忽略空格
另换成中文空格不会有这个问题。
以下是Gray Zhang的补充:
1、IE6-8下,对于一个元素的firstChild,如果其为TextNode,且nodeValue前n个字符为空格字符(包括空格、\t、\n、\r和一个分页符号U+000C),则这n个字符被忽略
2、在IE6-8下,对一个元素的lastChild,如果其为TextNode,且nodeValue最后n个字符为空格字符(包括空格、\t、\n、\r和一个分页符号U+000C),则这n个字符会被合并为一个空格(ASCII码为32),无论你是\t还是\n,都会变成一个空格
您可能感兴趣的文章:
- js的.innerHTML = ""IE9下显示有错误的解决方法
- IE6-IE9不支持table.innerHTML的解决方法分享
- IE6/7/8/9中Table/Select的innerHTML不能赋值的解决方法
- Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
- 解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
- innerHTML 和 getElementsByName 在IE下面的bug 的解决
- IE bug table元素的innerHTML
- JS 动态获取节点代码innerHTML分析 [IE,FF]
- IE 下的只读 innerHTML
- IE innerHTML,outerHTML所引起的问题
- IE6与IE7中,innerHTML获取param的区别
- IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解决方案
相关文章
JavaScript中的作用域与闭包、原型与原型链、异步与单线程
JavaScript的三座大山指的是:作用域和闭包、原型和原型链、异步与单线程,这些概念在日常的开发工作中经常被提及,并对我们理解和编写高质量的JavaScript代码至关重要2024-02-02javascript当中的代码嗅探扩展原生对象和原型(prototype)
如果不是有特殊需要而去扩展原生对象和原型(prototype)的做法是不好的,除非这样做是值得的,例如,向一些旧的浏览器中添加一些ECMAScript5中的方法2013-01-01JavaScript实现按照指定长度为数字前面补零输出的方法
这篇文章主要介绍了JavaScript实现按照指定长度为数字前面补零输出的方法,实例分析了javascript操作数字补零的技巧,需要的朋友可以参考下2015-03-03
最新评论