预见tomorrow  
jQuery 是 JavaScript 的一个函数库。方便、主流
 
jQuery的开发步骤:
(1) 导入jQuery 库
 
(2)  在
<script src="../js/jquery-3.1.0.min.js" type="text/javascript"></script>
<script> 
        $(function(){
                    写jQuery代码;
         });
</script>
 
(3)jQuery对象   vs     DOM对象
1.jQuery对象   和  DOM对象   不可混用,不能使用另一方的属性和方法
 
2.jQuery对象  是一个  DOM数组对象。所以可以用 下标的方式  转为  DOM对象
var $btn = $("button");
var btn = $btn[0];
3.jQuery对象  使用  $()  包装  DOM对象后  产生的对象
 
例:进行遍历的时候(jQuery对象 遍历的方式使用 each,在each 内部的 this 是正在得到的 DOM 对象,而不是一个 jQuery对象。 )
$("select : seclected").each(function(){
//alert(this.value);    如果想用jQuery的属性和方法,用$()  包装起来。
alert($(this).value);
});
(4)jQuery 选择器(综合使用,威力巨大)
选取被选中的 select 的option 需要使用 选取子节点的方式
$("select[name="test"] :selected").each(function(){   //注意绿色和橘色之间是有空格(黄色)的
//jq代码
});
 
选择器搞不定,可以借助方法
 
(5)jQuery对象的方法
 
 

 

 

 
 
一、格式$(selector).action();
        $ : jQuery的缩写
        selector: 选择器
        action(): 对元素的操作
 
<script> 
     $(document).ready(function(){
          alert("jQuery代码");
     });
</script>
 

二、获取元素的值和修改元素的内容
<script>
   $(document).ready(function(){
/*
* 获取元素的值(不带参)
* */
//js
var jsValue = document.getElementById('first').innerHTML;
var jsValue1 = document.getElementById('first').innerText;

//jq
var jQValue = $('#first').html();
var jQValue1 = $('#first').text();
 
 
/*
 * 设置元素的内容(带参)
 * */
//js
 document.getElementById('first').innerHTML = '修改内容';
      document.getElementById('first').innerHTML = '<h2>添加的h2标签</h2>';

//jq
 $('#first').html('修改内容');
 $('#first').html('<h2>添加的h2标签</h2>');
   });
</script>
 
 

三、onload和ready的对比
 
jq:  文档就绪函数,为了防止文档在完全加载(就绪)之前运行jQuery代码
  $(document).ready(function(){
        //jq代码;
   });
 
js:
  window.onload = function(){
     //js代码
 }
 
区别(面试可能会问):
 
1、加载时间不同。
        ready:只要页面的DOM加载完成就可以完成。
        onload:包括页面所有资源(图片、js、dom树等)加载完成之后执行。
2、编写的个数不同。
         onload:只能写一个,执行一次,后面会覆盖前面,以最后一个为准。
         ready:可以同时编写多个,并且每个都可以得到执行。
3、简写形式。
          onload:没有简写形式。
          $(document).ready():等价于 $(function(){})
 
 
ps:
有一个大型的图库网站,为网页中所有图片添加某些行为,例如单击图片后让它隐藏或显示。
如果使用window.onload方法来处理,那么用户必须等到每一幅图片都加载完毕后,才可以进行操作。
如果使用jQuery中的$(document).ready()方法来进行设置,只要DOM就绪时就可以操作了,不需要等待所有图片下载完毕
 
例:
<script>
    
//1. js(只能写一个)
window.onload = function(){
    alert(1);
}
window.onload = function(){
    alert(2);
}
window.onload = function(){
    alert(3);
}
 
//2.jq(可以写多个)
$(document).ready(function(){
    alert(4);
});
$(document).ready(function(){
    alert(5);
});
$(document).ready(function(){
    alert(6);
});

$(function(){
    alert(7)
});
</script>
 
 

四、jQuery对象(jq对象是个数组)
 
         1. $ == jQuery   console.log(jQuery);    console.log($); 一样结果 
             例:
console.log(jQuery);
console.log($);
var jqObj = $('p');
var jqObj = jQuery('p');
 
         2.  js 和 jq  对象的相互转化
            注:  原生js代码不能和jQuery混合使用
              原生DOM对象是可以和jQuery对象互相转变的
           例:
//        先获取
        var jqObj = $('p');
        var jsObj = document.getElementById('two');   //如果是集合的话不能转,集合里的对象可以转
        
//        再转换
        var newjqObj = $('jsObj');     //原生DOM对象 转变为 jQuery对象   使用 $() 进行包装 
        var newjsObj = jqObj.get(0);   //jQuery对象 转变为 原生DOM对象    通过数组的下标
//        输出
        console.log("-----------"+jqObj);
        console.log("-----------"+jsObj);

        console.log("-----------"+newjqObj);
        console.log("-----------"+newjsObj);
 
         3.  放弃$,避免多库冲突   
    
    可以重新赋个值,$$ 就相当于 jQuery 
var $$ = jQuery.noConflict();
var jqObj = $$('p');
例: 
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>jQuery对象的转换</title>
    <script src="js/jquery-3.1.0.min.js" type="text/javascript"></script>
</head>
<body>
<p>段落1</p>
<p>段落2</p>
<p>段落3</p>
<p id="p4">段落4</p>
</body>
<script>
    console.log(jQuery);
    var $$ = jQuery.noConflict();

    var jqObj = $$('p');
    var jsObj = document.getElementById('p4');

    var newjqObj = $$(jsObj);
    var newjsObj = jqObj.get(0);

    console.log("------------"+jqObj);
    console.log("------------"+jsObj);

    console.log("------------"+newjqObj);
    console.log("------------"+newjsObj);

    /*
    *   $ == jQuery
    *
    * */

    /*
    *   总结:
    *       1. 原生js代码不能和jQuery混合使用
    *       2. 原生DOM对象是可以和jQuery对象相互转变的。
    * */
   $(function(){

        /*
        *   1.jQuery对象转变为原生DOM对象
        * */
        var con = $('p').get(1).innerHTML;
        console.log(con)

        /*
        *   2.原生DOM对象转变为jQuery对象
        * */
        var con4 = document.getElementById('p4');
        console.log($(con4).html());
    });
</script>
</html>
 
 
 
 
posted on 2016-10-20 21:38  预见tomorrow  阅读(124)  评论(0编辑  收藏  举报