1:轻量级 (js 库非常小)
2:强大的选择器(获取页面上面的dom 元素 document.getElementById() 操作dom 必须先得到dom )
3:出色的DOM操作的封装
4:可靠的事件处理机制(对事件进行了一个封装)
5:完善的Ajax(底层封装xmlhttprequest)
6:完善的文档
7:出色的浏览器兼容性
8:隐式迭代 (显示迭代:迭代一个数组) 显示迭代(for(var i=0;i<array.length;i++){ }) 隐身迭代屏蔽掉for 操作
9.减少服务器的压力和带宽并且加快了加载速度
10:丰富的插件支持 后期扩展非常方便
缺点:
jq的存在的缺点:
1、容易造成冲突
第二部分:
使用jq遇到的问题以及解决?
1.前台拿不到值,问题多数发生在json上(多了个空格),这个东西编译时不报错的
2、jq库与其他库可能冲突. 解决:同过jquery.noconfict(),通过函数传参,将$过度给其他的库使用
3,通过jquery.ajax()方法来与后台进行数据交互的时候,返回的数据一直有问题,清除缓存后数据无误,但是经过多次测试发现返回的值都是之前的值,并且一直未执行url (后台为java
,设置断点后一直未进入),通过查资料,发现是因为未设置type的原因,如果为设置jQuery.ajax的type=“POST”,ajax会默认type=“GET”,这就会导致之前的数据被缓存起来,加上type="POST",问题解决!
*如获取到多个元素将是一个数组,可以直接用数组的属性方法
当前元素:
jQuery 使用 CSS 选择器来选取 HTML 元素。
jQuery 使用 XPath 表达式来选择带有给定属性的元素。
jQuery CSS 选择器可用于改变 HTML 元素的 CSS 属性。包括:
CSS的选择器其实大类的话可以分为三类,即id选择器、class选择器、标签选择器。
用法如下:
#id名 { 属性名:属性值; }
.class名 { 属性名:属性值; }
标签名 { 属性名:属性值; }
其中,他们之间又可以以不同的方式进行组合,如下:
后代选择器: 父代名 后代名 { 属性名:属性值; }
子代选择器: 父代名>子代名 { 属性名:属性值; }
群组选择器: #name1, .name2, #name div { 属性名:属性值; }
伪类选择器: name:伪类
通用(通配符)选择器: * { 属性名: 属性值;
标签选择器(如:body,div,p,ul,li)
.类选择器(如:class="head",class="head_logo")
ID选择器(如:id="name",id="name_txt")
全局选择器(如:*号)
.组合选择器(如:.head .head_logo,注意两选择器用空格键分开)
.继承选择器(如:div p,注意两选择器用空格键分开)
伪类选择器(如:就是链接样式,a元素的伪类,4种不同的状态:link、visited、active、hover。)字符串匹配的属性选择符(^ $ *三种,分别对应开始、结尾、包含)
字符串匹配的属性选择符(^ $ *三种,分别对应开始、结尾、包含)
CSS选择器的效率
id选择器(#myid)类选择器(.myclassname)标签选择器(div,h1,p)相邻选择器(h1+p)子选择器(ul > li)后代选择器(li a)通配符选择器(*)属性选择器(a[rel="external"])伪类选择器(a:hover,li:nth-child)