JQuery中html()方法使用不当带来的陷阱


Posted in Javascript onApril 07, 2011

查看源码

return this[0] && this[0].nodeType === 1 ? 
this[0].innerHTML.replace(rinlinejQuery, "") : 
null;

得知其通过非标准的但所有浏览器都支持的innerHTML实现。
有些使用者会用html()方法的返回值作为代码分支的条件,比如:
var str = $('#user').html(); 
if( str=='jack' ){ 
... 
}else if( str=='tom' ){ 
... 
}else if( str=='lily' ){ 
... 
}

多数情况下这没什么问题,但如果id=user的html元素内有空格,则不会得到想要的结果了。比如:
<div id="user"> jack</div> 
<script> 
alert(document.getElementById('user').innerHTML.length); 
</script>

div[id=user]内文本jack前不小心多了3个空格,这时候在各浏览器表现不一样:
IE6/78中,弹出字符串的长度是4,即忽略了空格。
IE9/Firefox/Safari/Chrome/Opera中,弹出则是7,即没有忽略空格。
这时候拿.html()的返回值作为代码分支的条件明显在非IE浏览器中会出错。
如果非要使用元素的html内容作为判断条件,解决办法很简单
1,写html时去掉空格
2,调用html()方法后再调用trim,如var str = $('#user').html().trim();

相关:

http://www.w3.org/TR/2008/WD-html5-20080610/dom.html#innerhtml0
仅IE6/7/8中innerHTML返回值忽略英文空格的问题

Javascript 相关文章推荐
web页面数据展示新想法(json)
Jun 08 Javascript
基于JQuery的Select选择框的华丽变身
Aug 23 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
Apr 25 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
Dec 31 Javascript
在AngularJS中使用AJAX的方法
Jun 17 Javascript
javascript html5 canvas实现可拖动省份的中国地图
Mar 11 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
May 18 Javascript
微信小程序的分类页面制作
Jun 27 Javascript
浅谈react 同构之样式直出
Nov 07 Javascript
Webstorm2016使用技巧(SVN插件使用)
Oct 29 Javascript
基于vue实现探探滑动组件功能
May 29 Javascript
JS Object构造函数之Object.freeze
Apr 28 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
Apr 07 #Javascript
jQuery为iframe的body添加click事件的实现代码
Apr 07 #Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
Apr 07 #Javascript
Jquery Ajax的Get方式时需要注意URL地方
Apr 07 #Javascript
jquery对表单操作2
Apr 06 #Javascript
jQuery对表单的操作代码集合
Apr 06 #Javascript
24款非常有用的 jQuery 插件分享
Apr 06 #Javascript
You might like
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
跟老齐学Python之一个免费的实验室
2014/09/14 Python
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
Django model序列化为json的方法示例
2018/10/16 Python
Python异常处理知识点总结
2019/02/18 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
英国床垫在线:Mattress Online
2016/12/07 全球购物
美国时尚在线:Showpo
2017/09/08 全球购物
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
专业见习报告范文
2014/11/03 职场文书
服务行业标语口号
2015/12/26 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书
代码复现python目标检测yolo3详解预测
2022/05/06 Python