jQuery选择器特殊字符与属性空格问题


Posted in jQuery onAugust 14, 2017

一、选择器中含有特殊符号的注意事项

1.选择器中含有“.”、“#”、“(”或“]”等特殊字符

根据W3C的规定,属性值中是不能含有这些特殊字符的,但在实际项目中偶尔会遇到表达式中含有“#”和“.”等特殊字符,如果按照普通的方式去处理出来的话就会出错。解决此类错误的方法是使用转义符转义。

<div id="id#b">bb</div> 
< div id="id[1]">cc</div>

不能这样写:

$('#id#b'); 
$('#id[1]');

应该使用转义符号:

$('#id\\#b'); //转义特殊字符“#”
$('#id\\[1\\]'); //转义特殊字符“[ ]”

2.属性选择器的引号问题
1.3.1版本彻底放弃了1.1.0版本遗留下的@符号,如果你使用1.3.1以上的版本,那么你不能在属性前添加@符号,比如:
$('div[@title="test"'];

正确的写法是:

$('div[title="test"'];

二、选择器中含有空格的注意事项

选择器中的空格也是不容忽视的,多一个空格或少一个空格也许会得到截然不同的结果。看下面这个例子,它的HTML代码如下:

<div class="test"> 
<div style="display:none;">aa</div> 
<div style="display:none;">bb</div> 
<div style="display:none;">cc</div> 
<div class="test" style="display:none;">dd</div> 
< /div> 
< div class="test" style="display:none;">ee</div> 
< div class="test" style="display:none;">ff</div>

使用如下的jQuery选择器分别获取它们。

//注意区分类似这样的选择器 
//虽然一个空格,却截然不同的效果. 
var $t_a = $('.test :hidden'); 
var $t_b = $('.test:hidden'); 
var len_a = $t_a.length; 
var len_b = $t_b.length; 
alert("$('.test :hidden') = "+len_a); //输出 4 
alert("$('.test:hidden') = "+len_b); //输出 3

之所以会出现不同的结果,是因为后代选择器与过滤选择器的不同。

var $t_a = $('.test :hidden'); //有空格 是选取class为“test”的元素里面的隐藏元素。

var $t_b = $('.test:hidden'); //没有空格 则是选取隐藏的class为“test”的元素。

这点和css是一样的 css中假如有个div有两个class属性.top 和 .right <div class="top right "></div>,在css中我们要选择它定义样式只能这样写 .top.right{ } 而不能写成.top .right{ }

以上是小编为大家总结的全部内容啦,希望对大家的学习有所帮助~~

jQuery 相关文章推荐
jQuery实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
jQuery Tree Multiselect使用详解
May 02 jQuery
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
jquery-file-upload 文件上传带进度条效果
Nov 21 jQuery
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 jQuery
jQuery模拟12306城市选择框功能简单实现方法示例
Aug 13 jQuery
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 jQuery
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 jQuery
JavaScript或jQuery 获取option value值方法解析
May 12 jQuery
jQuery实现图片切换效果
Oct 19 jQuery
html5以及jQuery实现本地图片上传前的预览代码实例讲解
Mar 01 jQuery
jQuery实现手势解锁密码特效
Aug 14 #jQuery
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 #jQuery
jQuery:unbind方法的使用详解
Aug 14 #jQuery
jQuery 实时保存页面动态添加的数据的示例
Aug 14 #jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 #jQuery
jquery.uploadView 实现图片预览上传功能
Aug 10 #jQuery
jquery对table做排序操作的实例演示
Aug 10 #jQuery
You might like
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
php时间戳转换的示例
2014/03/31 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
js arguments,jcallee caller用法总结
2013/11/30 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
vue-cli3 配置开发与测试环境详解
2019/05/17 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
python的迭代器与生成器实例详解
2014/07/16 Python
Python中特殊函数集锦
2015/07/27 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
python 实现list或string按指定分段
2019/12/25 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
企业内控岗位的职责
2014/02/07 职场文书
学校消防演习方案
2014/02/19 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
文明工地标语
2014/06/16 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL