全栈记

1 jQuery01 元素的基本操作

2019-05-10  本文已影响0人  官清岁月

1、jQuery基本认知:

(1).jQuery是一个高效、精简并且功能丰富的JavaScript工具库,它提供的API易于使用并且兼容众多浏览器,其让诸如HTML文档遍历和操作、事件处理、动画和Ajax操作更加简单;

(2).作用:简化DOM操作;减少开发中跨浏览器问题(兼容性);强大的选择器(sizzle);无new构造;实现链式调用;可以对外扩展自己封装的插件;

(3).基于作用补充:[原生js关于window系列方法以及后续DOM事件处理等很多地方针对不同浏览器都封装了兼容性方法,封装兼容性方法很重要,IE9之前IE是不遵循W3C标准的,需要处理很多兼容性问题,IE9的发布让浏览器兼容性问题有所缓和;jQuery内部封装了处理兼容性方法,但并非所有的兼容性都做了封装,部分还未解决(很少用到)];[jQuery提供了强大的选择器(sizzle内涉及大量的正则匹配),相比于原生js,其选择dom元素有更多选择方式];[无new构造中使用很巧妙的方式];[jQuery可链式调用,必须熟悉此用法,底层封装的便是return this,原生js有模拟链式调用][jQuery可对外扩展封装插件,在jQuery的extend方法上扩展];

(4).jQuery是强大的工具库,其从1.10 --->>3.3.1迭代的过程中也在逐步完善,底层封装原生的js,其可以解决大部分需求,但也有些需求不能很好实现,所以开发过程中jquery和原生js可以一起使用,并不会冲突;[目前jQuery宣布不再更新,需求场景基本都可以解决;封装工具库的团队真的很nice,基本把所有使用情况都想到了]

(5).jQuery底层封装的便是原生js,使用便捷;基础用法写完后,剖析底层源码,学习封装的思路;

2、(1).jQuery是函数,其也是对象;$是jQuery的别名;$();=== jQuery();//获取到类数组

(2).jQuery();和原生dom获取到的元素都是类数组对象,但两者却不等同,所以两者的方法不能通用,往往需要相互转换;(平时提到的jQuery是类数组,准确的说是其获取的元素是类数组,而jQuery是对象); $(window);$(document);$(this);以及将原生js获取到的对象作为参数都是不需要加引号的,若是直接选择标签都需要加引号,$("html"); $("head"); $("body")

3、元素的基本操作;[调阅jQuery的API文档,熟练应用]

(1).查找元素(选择器):

[1].基础选择器:

[2].筛选器:

基础筛选器和子元素筛选器的区别:$("ul li:first")等,若有多个ul>li集合,其会将所有元素看作大集合去筛选元素,只能选中整体ul下的首个li,其他的不能选中;$("ul li:first-child")系列等,若有多个ul>li,其会选中每个ul下的首个元素,但li必须作为ul下的首个孩子才能选中,否则不能选中

<input type="button">按钮 //点击不会提交; <input type="submit">点击提交数据                      <button></button>//等同于 <button type="submit"></button>,平时type省略了,点击提交数据,只要type=submit都会提交表单数据;

[3].根据元素关系进行选择元素(系列方法):$('ul li').eq(index); $('ul li').get(index);  $('ul').filter('.one');

find();//查找子元素

(2).创建元素:$("<div><ul><li>skr~</li></ul></div>");

(3).插入元素:[原生js中插入元素没有appendTo(); 也没有insertBefore(); 封装过该方法];append();等系列方法插入元素有两种类型,第1种插入新创建的元素,第2种将已经存在的元素插入,其是剪切操作,同原生js等同;[dom树上的对象就那么多,不创建便不会凭空产生,所以其是剪切操作,如果不想进行剪切,可以对原元素进行克隆,操作副本]  [append();appendTo();等方法括号内为jQuery对象,dom元素,选择器都OK,灵活性高]

(4).删除、替换、包裹、克隆元素:

[删除元素:empty();//删除选中元素的子元素;remove();//删除选中元素(自己)]

[原生js中替换元素:parent.replaceChild(new,old);]

4、demo练习;

上一篇下一篇

猜你喜欢

热点阅读