【jQuery】二、常规选择器


视频参考(李炎恢老师jQuery视频教程):http://study.163.com/course/courseMain.htm?courseId=501006

1.简单选择器

在使用jQuery选择器时,必须使用$( )函数来包装css规则。

选择器 CSS模式 jQuery模式
element(元素名) div{} $('div')
#id #firstname{} $('#firstname')
.class .classname{} $('.classname')
例:  

p{color:red;}

等价于:$('p').css('color','red')

#firstname{color:red;}                    //使用id选择器的css规则

等价于:$('#mydiv').css('color','red')     //获取DOM结点对象,并添加行为

.classname{color:red;}

等价于:$('.classname').css('color','red')


2.进阶选择器

选择器 CSS模式 jQuery模式
群组选择器 span,p,em{} $('span,p,em')
后代选择器 ul li a{} $('ul li a')
通配选择器 *{} $('*')

例:

span,p,em{color:red;}   等价于:   $('span,p,em').css('color','red');

ul li a{color:blue;}     等价于    $('ul li a').css('color','blue');

*{margin:0;padding:0;}    等价于    $('*').css('margin',0).css('padding',0);

3.高级选择器

选择器 CSS模式 jQuery模式
后代选择器 ul li a{} $('ul li a')
子选择器 div>p{} $('div>p')
next选择器 div+p{} $('div+p')
nextAll选择器 div~p{} $('div~p')

注:①后三种高级选择器的CSS模式不支持IE6,jQuery模式支持

②后代选择器:jQuery为后代选择器提供了一个等价的find()方法

子选择器:只获取子节点 的多个DOM对象。jQuery为子选择器提供了一个等价的children()方法

例:$('#mydiv>p').css('color','pink');        等价于       $('#mydiv').children('p').css('color','pink');

④next选择器:只获取某结点后一个同级的DOM对象。jQuery为next选择器提供了一个等价的next()方法

例:$('#mydiv+p').css('color','green');      等价于      $('#mydiv').next('p').css('color','green');

⑤nextAll选择器:获取某结点后所有同级的DOM对象。jQuery为nextAll选择器提供了一个等价的nextAll()方法




写在最后:

①关于jQuery的注释:

·单行注释 //...

·多行注释 /*...*/

②可以使用jQuery自带的length属性或size()方法查看元素个数:$('#idname').size()     或     $('#idname').length

③取第n个元素的写法:$('.classname').get(n-1)     或     $('.classname')[n-1]

④jQuery的容错性:当有动态DOM生成问题时,会导致执行不存在的id选择器,此时原生JS会报错,但jQuery不会报错

例如:document.getElementById("idname").style.color='red';     //当idname不存在时浏览器会报错

$('#idname').css('color','red');      //当idname不存在时浏览器不会报错

⑤通配符*在全局范围内使用将消耗大量资源,所以不建议在全局范围内使用。举个在局部范围内使用通配符*的例子:$('ul li *')

⑥选择器越复杂,字符串解析就越慢。所以在构造选择器时的原则是:只追求必要的确定性

⑦如果在不规范的页面中出现多个一样的id,并执行了CSS样式操作,将均会显示效果,但是如果用jQuery实现将只对第一个id产生效果。

猜你喜欢

转载自blog.csdn.net/weixin_39068791/article/details/79616009