jQuery写法

//实例写法
$('div').css({width:200,backgroundColor:'red'});

参数规则

// css selector
$('.wrapper ul li').css({width:100,backgroundColor:'red'});

//jquery unique selector
$('.wrapper ul li:first')选择第一个li元素 (last最后一个)
$('.wrapper ul li:odd')选择奇数元素(even偶数元素)
$('.wrapper ul li:eq()')单独选择某一元素(负数是从后往前数)
$('li[data="abc"]')(选择属性data为abc的Li元素)
$('li[data$="abc"]')(以abc结尾)
$('li[data^="abc"]')(以abc开头)
$('li[data!="abc"]')
$('li[data*="abc"]')

//null undefind '' 容错机制
//dom (用$包装成jquery对象,包装的目的是使用一系列jquery方法)

<div class = "wrapper">
<div class = "demo">
<span>span1</span>
</div>
<div class = "demo">
<p>p1</p>
</div>
     <div class = "demo">
<span>span2</span>
</div>
</div>
<script>
var colorArr = ['red','blue','yellow'];
$('.wrapper .demo').each(function(index,ele){
//console.log(ele) (原生dom)
$(ele).find('span').css({color:colorArr[index]});//(每一个demo都循环,没有span的demo返回空,不报错,就是容错机制)
});
</script>

//function
$(function(){

});
$(document).ready(function(){

});
(以上两种形式意义相同)
 //两个参数  css selector和context(上下文)
$('ul','.wrapper');

 jQuery 使用精髓

选择元素

循环操作

链式调用

 

//jQuery库  封闭作用域

原理:

(function(){
          function jQuery(selector){
            return new jQuery.prototype.init(selector);
          }
          jQuery.prototype.init = function (selector){
              //this = {};
              //选出 dom 并且包装成jQuery对象 返回
              // id class
              this.length = 0;
              if (selector.indexOf('.')!= -1){
                 var dom = document.getElementByClassName(selector.slice(1));
              }else if (selector.indexOf('#') != -1){
                 var dom = document.getElementById( selector.slice(1));
              }
         
              if (dom.length == undefined){
                  this[0] = dom;
                  this.length++;
              }else{
                //基础铺垫
                for (var i=0; i < dom.length; i++){
                    this[i] = dom[i];
                    this.length++;
                }
              }
              //return this;
          }
          
          jQuery.prototype.css = function(config){
            //循环操作每一个dom
            //循环操作
            for (var i = 0;i < this.length; i++){
               for (var attr in config) {
                    this[i].style[attr] = config[attr];
               }
            }
            //链式操作
            return this;
          }
jQuery.prototype.init.prototype =
jQuery.prototype;
          window.$ = window.jQuery = jQuery; 
})();