jQuery选择器特殊字符与属性空格问题
一、选择器中含有特殊符号的注意事项
1.选择器中含有“.”、“#”、“(”或“]”等特殊字符
根据W3C的规定,属性值中是不能含有这些特殊字符的,但在实际项目中偶尔会遇到表达式中含有“#”和“.”等特殊字符,如果按照普通的方式去处理出来的话就会出错。解决此类错误的方法是使用转义符转义。
<div id="id#b">bb</div> < div id="id[1]"></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"'];
二、选择器中含有空格的注意事项
选择器中的空格也是不容忽视的,多一个空格或少一个空格也许会得到截然不同的结果。看狼蚁网站SEO优化这个例子,它的HTML代码如下:
<div class="test"> <div style="display:none;">aa</div> <div style="display:none;">bb</div> <div style="display:none;"></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属性. 和 .right <div class=" right "></div>,
在css中我们要选择它定义样式只能这样写 ..right{ }
而不能写成. .right{ }
以上是长沙网络推广为大家总结的全部内容啦,希望对大家的学习有所帮助~~
编程语言
- 机械手焊接机器人编程 机械手焊接设备编程
- vb数据库编程实例,vb做数据库
- tiobe世界编程语言排行榜,全球编程语言排行
- 成都java编程培训 成都it编程培训中心
- 编程基础培训,编程基础知识培训
- flash游戏编程基础教程,flash游戏开发教程
- 不会英语能学编程吗 不会英语可以学程序员吗
- 爱心代码编程C语言 爱心代码编程c语言公式
- c语言编程学习入门 c语言编程快速入门
- 西门子plc编程培训 西门子plc编程培训班
- 哪里可以学编程 台州哪里可以学编程
- 少儿编程哪个好 少儿编程哪个品牌好
- 编程是什么意思,图形编程是什么意思
- c语言编程软件下载,c语言编程软件在哪下载
- java编程软件下载,java编程下载手机版
- ug编程培训学校,ug编程培训教程