一、对jQuery对象的理解
转自:https://blog.csdn.net/abvedu/article/details/54017688
1、什么是jQuery对象?
jQuery对象是通过jQuery包装DOM对象后产生的对象。
这里首先要理解DOM文档对象模型:
(1)DOM解析XML文档时,DOM为XML文档在逻辑上建立一个树模型;
(2)DOM把XML文档作为树结构来查看,XML文档的树形结构节点就是XML文档上的元素、文本和属性。
还要理解HTML页面为什么与DOM对象联系在一起?
因为HTML页面中的元素都表现为类似XML文档的树形结构:存在元素节点、属性节点和文本节点,所以用
DOM对象也可以解析HTML页面中的元素(这也是形成jQuery选择器的原因)。
再者,还要理解DOM对象如何转化为jQuery对象?
HTML DOM 定义了多种查找HTML页面元素的方法,除了 getElementById() 之外,
还有 getElementsByName() 和 getElementsByTagName()。找到的这个页面元素就是一个DOM对象。
用jQuery构造这个DOM对象,就获得一个jQuery对象。示例:
var domObj = document.getElementById("element");
var $obj=jQuery(domObj);
2、jQuery对象的表示:
在jQuery库中,$是jQuery的一个简写形式,所以一个节点元素的jQuery对象可以写成:
$(nodeString)
其中,nodeString是:Html标签的id、class、或者标签名等。
3、jQuery中DOM的操作
DOM是一种与浏览器、语言无关的接口,利用该接口可以方便地访问HTML页面中的标准组件。jQuery提供了一系列方法
对DOM进行各种操作,从而通过DOM实现对HTNL页面中各种元素的操作。
每一个HTML页面都可以使用DOM表示,在使用jQuery进行DOM操作之前,HTML页面首先被看作一棵DOM树。
二、Jquery的基本使用
转自:https://blog.csdn.net/liuyingv8/article/details/79758403
引入jQuery
路径引入
<script src='文件路径'></script>
引入在线资源
<script src = "https://code.jquery.com/jquery-1.12.4.js"></script>
入口函数
$(document).ready(function(){
//类似于原生js的window.onload
});
简写
$(function(){ });
和window.onload的区别
区别一:书写个数不同
Js入口函数只能出现一次,出现多次会存在事件覆盖的问题。
jQuery的入口函数,可以出现任意多次,并不会存在事件覆盖问题。
区别二:执行时机不同
Js入口函数是在所有的文件资源加载完成后,才执行。这些文件资源包括:页面文档、外部的js文件、外部的css文件、图片等。
jQuery的入口函数,是在文档加载完成后,就执行。文档加载完成指的是:DOM树加载完成后,就可以操作DOM了,不用等到所有的外部资源都加载完成。
DOM对象和jQuery对象
jQuery对象:
jQuery选择器拿到DOM对象后又对其做了封装,让其具有了jQuery方法的jQuery对象,说白了,就是把DOM对象重新包装了一下。
jQuery对象转换为DOM对象
第一种方式
var btn1 = $btn[0];
// 此时就把jQuery对象$btn转换成了DOM对象btn1 (推荐使用此方式)第二种方式
var btn2 = $btn.get(0);// 此时就把jQuery对象$btn转换成了DOM对象btn2
DOM对象转换为jQuery
使用$(domObject)包裹就可以包装成一个jQuery对象
jQuery选择器
jQuery选择器是jQuery强大的体现,它提供了一组方法,让我们更加方便的获取到页面中的元素。语法和css的选择符保持一致。
基本选择器
"#"
Id选择器
--示例$(“#btnShow”).css(“color”, “red”);选择id为btnShow的一个元素(返回值为jQuery对象)
"."
类选择器
--示例$(“.liItem”).css(“color”, “red”);选择含有类liItem的所有元素
"element"
标签选择器
--示例$(“li”).css(“color”, “red”);选择标签名为li的所有元素
"空格"
层级选择器(后代选择器)
--示例$(“#j_wrap li”).css(“color”, “red”);选择id为j_wrap的元素的所有后代元素li
">"
子代选择器
--示例$(“#j_wrap > ul > li”).css(“color”, “red”);选择id为j_wrap的元素的所有子元素ul的所有子元素li
基本过滤选择器
":eq(index)"
选择匹配到的元素中索引号为index的一个元素,index从0开始
--示例$(“li:eq(2)”).css(“color”, ”red”);选择li元素中索引号为2的一个元素
":odd"
选择匹配到的元素中索引号为奇数的所有元素,index从0开始
--示例$(“li:odd”).css(“color”, “red”);选择li元素中索引号为奇数的所有元素
":even"
选择匹配到的元素中索引号为偶数的所有元素,index从0开始
--示例$(“li:odd”).css(“color”, “red”);选择li元素中索引号为偶数的所有元素
筛选(方法)
find(selector)
查找指定元素的所有后代元素(子子孙孙)
--示例$(“#j_wrap”).find(“li”).css(“color”, “red”);选择id为j_wrap的所有后代元素li
children()
查找指定元素的直接子元素(亲儿子元素)
--示例$(“#j_wrap”).children(“ul”).css(“color”, “red”);选择id为j_wrap的所有子代元素ul
siblings()
查找所有兄弟元素(不包括自己)
--示例$(“#j_liItem”).siblings().css(“color”, “red”);选择id为j_liItem的所有兄弟元素
parent()
查找父元素(亲的)
--示例$(“#j_liItem”).parent(“ul”).css(“color”, “red”);选择id为j_liItem的父元素
eq(index)
查找指定元素的第index个元素,index是索引号,从0开始
--示例$(“li”).eq(2).css(“color”, “red”);选择所有li元素中的第二个
优化jQuery的代码性能
01 jQuery中性能最快的选择器是ID选择器 ($('#someid')). 这是因为它直接映射为JavaScript的getElementById()方法。 选择单个元素
02 类选择器前面限定标签名
03 缓存jQuery对象,jQuery有隐式迭代机制,保存为jQuery对象后在操作可以减少重复选择
04 利用事件委派处理事件
05 减少直接操作添加多个DOM元素,使用字符串拼接,添加给父元素效率会更高。