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 相关文章推荐
js中匿名函数的N种写法
Sep 08 Javascript
juqery 学习之五 文档处理 插入
Feb 11 Javascript
javascript单引号和双引号的区别和处理
May 14 Javascript
zepto.js中tap事件阻止冒泡的实现方法
Feb 12 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
Aug 03 Javascript
ArtEditor富文本编辑器增加表单提交功能
Apr 18 Javascript
深入理解 JavaScript 中的 JSON
Apr 06 Javascript
基于Node.js模板引擎教程-jade速学与实战1
Sep 17 Javascript
小程序实现选择题选择效果
Nov 04 Javascript
js滚轮事件 js自定义滚动条的实现
Jan 18 Javascript
浅谈vue.watch的触发条件是什么
Nov 07 Javascript
利用JavaScript模拟京东按键输入功能
Dec 01 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
php 特殊字符处理函数
2008/09/05 PHP
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
PHP原理之异常机制深入分析
2010/08/08 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
比较全面的PHP数组的使用方法小结
2010/09/23 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
JavaScript 命名空间 使用介绍
2013/08/29 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
2018/01/22 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
[03:59]DOTA2英雄梦之声_第07期_水晶室女
2014/06/23 DOTA
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
python实现石头剪刀布程序
2021/01/20 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
售后服务科岗位职责范文
2013/11/13 职场文书
保安员岗位职责
2013/11/17 职场文书
求职简历中个人的自我评价
2013/12/25 职场文书
小学生班会演讲稿
2014/01/09 职场文书
科技之星事迹材料
2014/06/02 职场文书
应届生自荐信
2014/06/30 职场文书