#JQuery学习

###安装 下载jQuery或者用CDN。

jQuery是一个轻量级的JavaScript库。

优点
  • 容易上手
  • 强大的选择器
  • 解决浏览器的兼容问题
  • 完善的事件机制
  • 出色的Ajax疯转
  • 丰富的UI

  • 链式操作
  • 回调函数
  • 迭代器
  • 延迟对象
  • 队列

样式篇

jQuery对象与DOM对象是不一样的。 通过原生DOM模型提供的document.getElementById(“imooc”)方法获取的DOM元素就是DOM对象。 通过$(‘#imooc’)方法会得到一个$p的jQuery对象,$p是一个类数组的对象,这个对象里面其实是包含了DOM对象的信息,然后封装了很多操作。

通过标准的Javascript操作DOM与jQuery操作DOM的对比,发现:

  1. 通过jQuery方法包装后的对象是jQuery对象,它是一个新对象。
  2. jQuery与DOM对象完全不是同一个东西,但又是相似的东西,他们都能处理DOM
  3. 通过jQuery处理DOM的操作,可以让开发者更专注业务逻辑的开发,而不需要我们具体知道哪个DOM节点有哪些方法,也不需要关心不同浏览器的兼容问题,我们可以通过jQuery更友好的API进行开发,同事代码更加简练。

jQuery库本质上还是javascript代码,它只是对javascript进行包装,为提供更好更方便快捷的DOM处理与开发中常见的功能。可以用jQuery的同时混合使用Javascript原生代码一起使用。通过jQuery生成的对象是一个做了包装的对象,如果要用jQuery对象自己的方法就需要满足这个对象是通过jQuery生成的。jQuery是一个类数组对象,DOM对象是一个单独的DOM元素。

相比jQuery转化DOM,开发中更多是把一个dom对象转化为jQuery对象。$(参数)是一个多功能的方法,通过传递不同的参数产生不同的作用。 如果传递给$(dom)函数的参数是一个dom对象,jQuery方法会把这个dom对象包装成一个新的jQuery对象。

页面的任何操作都需要节点的支撑,开发者如何快速高效的找到指定节点也是前段开发的一个重点。jQuery提供了一系列的选择器帮助开发者达到这一目的,让开发者可以更少的处理复杂选择过程与性能优化,更多专注逻辑的编写。

id选择器是最基本的选择器,jQuery内部使用javascript函数document.getElementById()来处理ID的获取。原生语法的支持总是十分高效的,所以在操作DOM的获取上,如果能采用id,尽量使用这个选择器。 id是唯一的,每个id值在一个页面只能使用一次。如果多个元素分配了相同的id,将只匹配id选择集合的第一个DOM元素。但这种行为不应该发生,有超过一个元素的页面使用相同的id是无效的。

类选择器,顾名思义,就是通过class样式类名来获取节点。 类选择器相对id选择器来说,效率相对会低一点,但是优点就是可以多选。

元素选择器,根据给定(html)标记名称选择所有的元素。相对于原生方法getElementByTagName()函数。

全选择器(选择器):通配符意味着给所有的元素设置默认的边框。jQuery中也可以通过传递来选中文档中的元素。$(“”) 通过document.getElementByTagName(“*“)可以获取文档中所有元素。

JQuery中2个等号和3个等号。 ==equality 等同,=== identity恒等。 ==,两边值类型不同的时候,要先进行类型转换,再比较。 ===,不做类型转换,类型不同一定不等。

层级选择器(节点之间的关系)

节点之间的关系,即文档树当做一个家谱,存在父子、兄弟关系。(子元素、后代元素、兄弟元素、相邻元素)

选择器

$("parent > child") 子选择器:选择所有指定"parent"元素中指定的"child"的直接元素。
$("ancestor descendant") 后代选择器:选择给定的祖先元素的所有后代元素,一个元素的后代可能是该元素的孩子、孙子、曾孙等。
$("prev + next") 相邻兄弟选择器:选择所有紧跟在“prev”元素后的“next”元素
$("prev ~ siblings") 一般兄弟选择器:匹配“prev”元素之后的所有兄弟元素。具有相同的父元素,并匹配过滤“siblings”选择器。
  • 层级选择器都有一个参考节点;
  • 后代选择器包含子选择器的选择的内容;
  • 一般兄弟选择器包含相邻兄弟选择器选择的内容;
  • 相邻和一般兄弟选择器所选择的元素必须在同一个父元素下;

练习:

  1. 选择页面中唯一的DOM元素,用ID选择器最快。因为ID是唯一的,每个id在一个页面中只能使用一次。如果存在多个相同的id,将只匹配该id选择集合中的第一个dom元素。
  2. 类选择器、元素选择器、全选择器(*)可以同时选择多个元素。
基本筛选选择器
$(":first") 匹配第一个元素
$(":last") 匹配最后一个元素
$(":not(selector)") $(":eq(index)") $(":gt(-index)") $(":even") $(":odd") $(":lt(index)") $(":header") $(":root") $(":animated")

注意:

  • :eq(),:lt(),:gt(),:even,:odd用来筛选他们前面的匹配表达式的集合元素,根据之前匹配的元素进一步筛选,注意jQuery集合都是从0开始索引
  • gt是一个段落筛选,从指定索引的下一个开始,gt(1)实际从2开始;
内容筛选选择器

基本选择器对应的是元素dom节点,jQuery也提供了一组内容筛选选择器,其规则体现在它所包含的子元素或者文本内容上。

$(":contains(text)") $(":parent") $(":empty") $(":has(selector)")
可见性筛选选择器

jQuery根据元素的状态扩展了可见性筛选选择器:visible与:hidden

$(':visible')  $(':hidden')

隐藏一个元素的几种方式:

  1. CSS display的值是none
  2. type=”hidden”的表单元素;
  3. 宽度和高度都显示设置为0;
  4. 一个祖先元素是隐藏的,该元素就不会在页面展示
  5. css visibility的值是hidden
  6. css opacity的值是0
    如果元素中占据文档中一定的空间,元素被认为是可见的。可见元素的宽度或高度都是大于零的。
    元素的visibility: hidden 或 opacity: 0被认为是可见的,因为他们仍占用空间布局。
    
    属性筛选选择器

    属性选择器可以基于属性来定位一个元素。可以指定钙元素的某个属性,这样所有使用该属性而不管它的值,这个元素将被定位,也可以更加明确定位到这些属性上使用特定值的元素。

    表单元素选择器
    $(":input") 选择所有input/textarea/select和button元素
    $(":text") $(":password") $(":redio") $(":checkbox") $(":submit") $(":image") $(":reset") $(":button") $(":file")
    

一些属性介绍

float属性:图像浮动。定义元素在哪个方向浮动,以往这个属性应用于图像,使文本围绕图像周围,不过在CSS中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是什么元素。

###语法

$(this).hide() 隐藏当前的HTML元素
$("#test").hide() 隐藏id=“test”的元素
$("p").hide() 隐藏所有<p>标签的元素
$(".test").hide() 隐藏所有class="test"的元素