jQuery 学习记录

来源:互联网 发布:淘宝主图制作技巧 编辑:程序博客网 时间:2024/06/04 23:23

//$(document).ready的作用是等页面的文档(document)中的节点都加载完毕后,再执行后续的代码,
//因为我们在执行代码的时候,可能会依赖页面的某一个元素,我们要确保这个元素真正的的被加载完毕后才能正确的使用。
//jQuery是一个类数组对象

            $(document).ready(function(){                var $p=$('#imooc');                $p.html('hello imooc').css('color','red');            });`

jQuery几乎支持主流的css1~css3选择器的写法
//id选择器$( "#id" )
//类选择器$( ".class" ) 相对id选择器来说,效率相对会低一点,但是优势就是可以多选
//元素选择器:根据给定(html)标记名称选择所有的元素

$( "element" )  通过传递*选择器来选中文档页面中的元素$( "*" )

jq的层级选择器

        //子选择器   $('div > p') 选择所有div元素里面的子元素P        //后代选择器  $('div  p') 选择所有div元素里面的p元素         //相邻兄弟选择器  /  $(".prev+div")选取prev后面的第一个的div兄弟节点          //一般相邻选择器 /$(".prev~div") 选取prev后面的所有的div兄弟节点         

这里写图片描述

jq的 筛选选择器
这里写图片描述
jQuery选择器之内容筛选选择器
这里写图片描述
jQuery选择器之属性筛选选择器
这里写图片描述
jQuery选择器之可见性筛选选择器
这里写图片描述
jQuery选择器之子元素筛选选择器
这里写图片描述

1 :first只匹配一个单独的元素,但是:first-child选择器可以匹配多个:即为每个父级元素匹配第一个子元素。这相当于:nth-child(1)
2 :last 只匹配一个单独的元素, :last-child 选择器可以匹配多个元素:即,为每个父级元素匹配最后一个子元素
3如果子元素只有一个的话,:first-child与:last-child是同一个
4 :only-child匹配某个元素是父元素中唯一的子元素,就是说当前子元素是父元素中唯一的元素,则匹配
5 jQuery实现:nth-child(n)是严格来自CSS规范,所以n值是“索引”,也就是说,从1开始计数,:nth-child(index)从1开始的,而eq(index)是从0开始的
6 nth-child(n) 与 :nth-last-child(n) 的区别前者是从前往后计算,后者从后往前计算

jQuery选择器之表单元素选择器

除了input筛选选择器,几乎每个表单类别筛选器都对应一个input元素的type值。大部分表单类别筛选器可以使用属性筛选器替换。比如$(':password') == $('[type=password]')
这里写图片描述

jQuery选择器之表单对象属性筛选选择器
1 选择器适用于复选框和单选框,对于下拉框元素, 使用 :selected 选择器
2 在某些浏览器中,选择器:checked可能会错误选取到元素,所以保险起见换用选择器input:checked,确保只会选取元素
这里写图片描述

jQuery选择器之特殊选择器this
相信很多刚接触jQuery的人,很多都会对(this)thisthisJavaScript/DOMthishtmlthisDOM()方法传入当前的元素对象的引用this,把这个this加工成jQuery对象,我们就可以用jQuery提供的快捷方法直接处理样式了

$('p').click(function(){    //把p元素转化成jQuery的对象    var $this= $(this)     $this.css('color','red')})

**this,表示当前的上下文对象是一个html对象,可以调用html对象所拥有的属性和方法。
$(this),代表的上下文对象是一个jquery的上下文对象,可以调用jQuery的方法和属性值。**

jQuery的属性与样式之.attr()与.removeAttr()
jQuery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr()

  1. attr()有4个表达式 attr(传入属性名):
  2. 获取属性的值 attr(属性名, 属性值):设置属性的值
  3. attr(属性名,函数值):设置属性的函数值
  4. attr(attributes):给指定元素设置多个属性值,即:{属性名一: “属性值一” , 属性名二: “属性值二” , … … }

removeAttr()删除方法
.removeAttr( attributeName ) : 为匹配的元素集合中的每个元素中移除一个属性(attribute)

dom中有个概念的区分:Attribute和Property翻译出来都是“属性”,《js高级程序设计》书中翻译为“特性”和“属性”。简单理解,Attribute就是dom节点自带的属性例如:html中常用的id、class、title、align等:<div id="immooc" title="慕课网"></div>而Property是这个DOM元素作为对象,其附加的内容,例如,tagName, nodeName, nodeType,, defaultChecked, 和 defaultSelected 使用.prop()方法进行取值或赋值等.

jQuery的属性与样式之html()及.text()

.html()方法
获取集合中第一个匹配元素的HTML内容 或 设置每一个匹配元素的html内容,具体有3种用法:
.html() 不传入值,就是获取集合中第一个匹配元素的HTML内容
.html( htmlString ) 设置每一个匹配元素的html内容
.html( function(index, oldhtml) ) 用来返回设置HTML内容的一个函数
.html()方法内部使用的是DOM的innerHTML属性来处理的,所以在设置与获取上需要注意的一个最重要的问题,这个操作是针对整个HTML内容(不仅仅只是文本内容)

.text()方法
得到匹配元素集合中每个元素的文本内容结合,包括他们的后代,或设置匹配元素集合中每个元素的文本内容为指定的文本内容。,具体有3种用法:
.text() 得到匹配元素集合中每个元素的合并文本,包括他们的后代
.text( textString ) 用于设置匹配元素内容的文本
.text( function(index, text) ) 用来返回设置文本内容的一个函数
.text()结果返回一个字符串,包含所有匹配元素的合并文本

.html与.text的异同:
.html与.text的方法操作是一样,只是在具体针对处理对象不同
.html处理的是元素内容,.text处理的是文本内容
.html只能使用在HTML文档中,.text 在XML 和 HTML 文档中都能使用
如果处理的对象只有一个子文本节点,那么html处理的结果与text是一样的
火狐不支持innerText属性,用了类似的textContent属性,.text()方法综合了2个属性的支持,所以可以兼容所有浏览器

jQuery的属性与样式之.val()

.val()方法
.val()无参数,获取匹配的元素集合中第一个元素的当前值
.val( value ),设置匹配的元素集合中每个元素的值
.val( function ) ,一个用来返回设置值的函数

通过.val()处理select元素, 当没有选择项被选中,它返回null
.val()方法多用来设置表单的字段的值
如果select元素有multiple(多选)属性,并且至少一个选择项被选中, .val()方法返回一个数组,这个数组包含每个选中选择项的值

.html(),.text()和.val()的差异总结:
.html(),.text(),.val()三种方法都是用来读取选定元素的内容;只不过.html()是用来读取元素的html内容(包括html标签),.text()用来读取元素的纯文本内容,包括其后代元素,.val()是用来读取表单元素的”value”值。其中.html()和.text()方法不能使用在表单元素上,而.val()只能使用在表单元素上;另外.html()方法使用在多个元素上时,只读取第一个元素;.val()方法和.html()相同,如果其应用在多个元素上时,只能读取第一个表单元素的”value”值,但是.text()和他们不一样,如果.text()应用在多个元素上时,将会读取所有选中元素的文本内容。
.html(htmlString),.text(textString)和.val(value)三种方法都是用来替换选中元素的内容,如果三个方法同时运用在多个元素上时,那么将会替换所有选中元素的内容。
.html(),.text(),.val()都可以使用回调函数的返回值来动态的改变多个元素的内容。

jQuery的属性与样式之增加样式.addClass()
在HTML结构中里,多个class以空格分隔,当一个节点(或称为一个标签)含有多个class时,DOM元素响应的className属性获取的不是class名称的数组,而是一个含有空格的字符串,这就使得多class操作变得很麻烦。同样的jQuery开发者也考虑到这种情况,增加了一个.addClass()方法,用于动态增加class类名

.addClass( className )方法
.addClass( className ) : 为每个匹配元素所要增加的一个或多个样式名
.addClass( function(index, currentClass) ) : 这个函数返回一个或更多用空格隔开的要增加的样式名
.addClass()方法不会替换一个样式类名。它只是简单的添加一个样式类名到元素上

jQuery的属性与样式之删除样式.removeClass()

.removeClass( )方法
.removeClass( [className ] ):每个匹配元素移除的一个或多个用空格隔开的样式名
.removeClass( function(index, class) ) : 一个函数,返回一个或多个将要被移除的样式名

原创粉丝点击