jquery相关笔记(一)

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])
posted @ 2018-06-11 14:00  我叫贾文利  阅读(79)  评论(0编辑  收藏  举报