1.当浏览别人的页面时,如果看见关不掉的广告,可以打开开发者工具,清除广告的行内样式、改广告的标签名、改广告的类名id或者选中广告标签按delete键都可以达到清除广告的目的。
2.虽然jqery很强大,但是很臃肿,需要自己封装一个jquery,要用到jqery中哪些方法,就把原来jquery中的方法拿出来。
3.jquery有两大特点:链式编程、隐式迭代(遍历)。
4.原生js的入口函数与jquery的入口函数
◆原生js的入口函数:【
window.onload = function () {}
是页面文档和页面资源都加载完毕之后开始执行函数里面的代码,document.onready =function () {}是页面文档加载完毕之后开始执行函数里面的代码(但是这个原生的js的入口函数是jquery脚本库扩展出来的事件,只有在引入了jquery脚本库的时候才能够使用document.onready,没有引入脚本库的时候document对象是没有这个事件的),document.onready 比 window.onload要快一点,因为图片资源还没有显示,document.onready里的代码就执行了,window.onload是页面所有资源都加载完毕才执行的,window对象没有onready。
】
◆jquery的入口函数:【
$(document).ready(function () {})、
$(function () {})、
$(window).ready(function () {})
这三种方式都和document.onready一样,都是页面文档加载完毕之后 就进入JQuery的入口函数开始执行函数里面的代码,
$(window).load(function () {});这种方式和window.onload一样,都是页面文档和页面资源都加载完毕之后开始执行函数里面的代码。
】
5.jQuery与$的区别:其实它们是一样的,都是一个函数名,并且它们完全相等,jQuery===$。
6.jQuery中的dom对象与原生js中的dom对象的区别:
◆jQuery的dom对象是对js的dom对象的封装
◆jQuery无论是通过什么方式获取的dom对象都是伪数组,数组中装的成员就是原生js的dom对象。
◆不光是将原生js的dom对象封装到数组中,并且还给这个数组增加了很多功能方法,也就是给原来的js的dom对象穿上了一层带有功能的皮肤,虽然原生的js的dom对象也可以自己封装这些功能方法,但是兼容性没有jQuery的那么好。
★模拟jQuery对象操作css样式的功能方法【
Object.prototype.css = function (json) {
var cssArr = [];
for (var key in json) {
cssArr.push(key + ":" + json[key]);
}
this.style.cssText = cssArr.join(";");
}
box.css({width: "200px", height: "200px", "background-color": "#f00"});
】
7.原生的js的dom对象可以和jQuery的dom对象相互转换
◆js的dom对象转换为jQuery的dom对象:$(js的dom对象)或jQuery(js的dom对象)。
◆jQuery的dom对象转换为js的dom对象:jQuery的dom对象[index]或jQuery的dom对象.get(index),就可以获取jQuery的dom对象的伪数组中的一个dom对象,但是如果get方法中不写索引就可以获取jQuery的dom对象的伪数组中的所有的dom对象,jQuery的dom对象.get()获取一个正常的原生js的dom对象的数组,不再是伪装数组。
8.jQuery中的伪数组是怎么实现的,清空原本数组中的原型(所有功能方法),添加自己新增的功能方法,添加索引为字符串的成员context,如下【
//模拟jquery的dom对象的封装 ,jquery的dom对象就是这样的伪数组
var arr = [];
arr[0] = 0;
arr[1] = 1;
arr[2] = 2;
arr[3] = 3;
arr[4] = 4;
arr["5"] = 5;
//js的数组[]里面不光是索引 还可以是字符串
arr["context"] = document;
//清空数组的原型 没有数组的方法了
arr["__proto__"] = null;
console.log(arr);//打印伪数组
//这样只能遍历索引为数字的 或者索引为字符串的数字的
for (var i = 0; i < arr.length; i++) {
console.log(i + " " + arr[i]);
}
//这样既可以遍历索引为数字的也可以遍历索引为字符串的
for (var key in arr) {
console.log(key + " " + arr[key]);
}
】
9.jQuery的基本选择器,无论什么选择器,返回的都是封装着原生的dom对象的伪数组,$(id选择器),$(element选择器),$(class选择器),$(*通配符选择器),$(选择器1,选择器2,选择器3,选择器4)....$(css选择器),其实在css中使用的选择器,都可以放到$()中作为选择器【
$("li")
$(".li")
$("*")
$("li,.li,#li,*")
】。
10.jQuery的层级选择器,$(祖 子)后代选择器,$(父>子)子代选择器,$(前+紧接着的后)后兄弟选择器,$(前~所有的后)后同辈选择器,其实在css中使用的选择器,都可以放到$()中作为选择器【
$("ul li")
$("ul>li")
$("#prv+ol")
$("#prv~li")
】。
11.基本过滤选择器:在基本选择器的基础上进行过滤操作,:first过滤第一个、:not(selector)过滤不包含selector的、:even过滤索引为偶数的、:odd过滤索引为奇数的、:eq(index)过滤索引等于index的、:gt(index)过滤索引大于index的、:last过滤最后一个、:lt(index)过滤索引小于index的、:header过滤h1-h6、:animated过滤正在执行动画的、:focus过滤已经获取焦点。
12.筛选选择器【
筛选查找选择器
// children([expr]) //找子代
// closest(e | o | e)1.7 *
// find(e | o | e)//从jquery对象的后代中查找必须制定参数,如果不指定获取不到元素
// next([expr])//下一个
// nextall([expr])//下面的全部
// nextUntil([e | e][, f])
// offsetParent() //带有定位的父节点
// parent([expr]) //父节点
// parents([expr])
// parentsUntil([e | e][, f])
// prev([expr]) //上一个
// prevall([expr]) //上面的全部
// prevUntil([e | e][, f])
// siblings([expr]) //所有兄弟 除了自己
//
// 筛选过滤选择器
// eq(index | -index) //等于索引的元素
// first() //第一个元素
// last() //最后一个元素
// hasClass(class) //是否包含类
// filter(expr | obj | ele | fn)
// is(expr | obj | ele | fn)
// map(callback)
// has(expr | ele)
// not(expr | ele | fn) 是否不包含
// slice(start, [end])
】