jquery


DOM增删改查
document.getElementByID('header'); --> $('#header')
getElementsByTagName('p'); --> $('p')
ajax --> $.ajax('xxx.php')
new XMLHttpRequest();
onreadystatechange = function(){
}
open();
send();
大量重复操作
第 第2章、认识 章、认识JQuery
jQuery是什么?
是封装了常用JS操作函数的一个库文件 库文件
有没有其他开源库?
Prototype.js 历史比较早,是SamStephenson写的一个非常优雅的javascript基础类库,对javascript做了大量的扩展,而且很好的支持Ajax ,国内外有
多个基于此类库开发的子项目.
Ext.js ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架。功能丰富,无人能出其右。
强势在UI操作上,可以很方便帮我们创建一个表格/表单,漂浮的窗口,ajax等等.大而全.但确定需求上做的不好.
YUI:Yahoo!  UI, 雅虎开源发布的一款js库.
JQuery 名称解释
JQuery = Javascript + Query (查询)
Jquery意思即指: 强大的DOM节点查询
为什么要学习jquery?
1: 市场占有率, 工作用到的可能性大.
2: jquery相比其他的js库,有其鲜明的特点.
Jquery从2006开始发布,但发布后迅速占据市场,成为后起之秀.
2.1: 查询DOM节点特别强大,像prototype.js则把很大一部分功能花在Array,String的原型功能的扩充上.
2.2: 封装的DOM操作 (比如想修改innerHTML=>html(),比如想操作css,DOMN ode.style.backgroundColor='red' , $(node).css('background' ,'red' );)
2.3: 动画操作非常方便
2.4: 高低版本兼容性好. 像dojo,高低版本兼容性不如jquery,影响了市场.
官方网站: http://jquery.com/
官方手册: http://api.jquery.com
版本说明 :
1.x 系列
2.x 系列
mobile系列 : 针对移动设备1.x ,2.x API 都是一样的.
但是2.x 不再兼容低版本IE,必须是IE9及以上
下载注意 下载注意
从官方网站下载时, jquery的文件名格式如下:
Jquery-1.x.x-min.js
或者jquery-1.x.x.js
2者功能没有区别,只在大小上有区别,min是压缩后的代码.
即把空行,空白等压缩掉,把变量名字变短.
而文件比较大的没压缩的源文件.
所以,当学习时,使用没压缩的源文件,但是在线网站,使用压缩版,可以提高下载速度
第 第3章、基本选择器 章、基本选择器
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>基本选择器</title>
        <script type="text/javascript" src="./jq.js"></script>
    </head>
    <body>
        <div id="test1">id test1</div>
        <div class="test2">class test2</div>
        <div class="test2">class test2</div>
        <p>p1</p>
        <p>p2</p>
        <p>p3</p>
    </body>
    <script type="text/javascript">
        //id 选择器
        $('#test1').css('background','gray');
        //标签选择器
        $('p').css('background','blue');
        //类选择器
        $('.test2').css('background','green');
        //*
        $('*').css('background','pink');
    </script>
</html>
第 第4章、层次选择器 章、层次选择器
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="./jq.js">
        </script>
    </head>
    <body>
        <p>
            <input type="text" />
            <span>1</span>
            <span>2</span>
        </p>
        <p>
            <input type="text" />
            <span>3</span>
            <span>4</span>
        </p>        <p>
            <input type="text" />
            <span>5</span>
            <span>6</span>
        </p>
        <div><span>7</span></div>
    </body>
    <script type="text/javascript">
        //div下的span
        $('div span').css('background','blue')
        //紧挨着的下一个元素,每一个元素之后的1个next元素被选中
        //$('input + span').css('background','gray');
        //紧挨着的所有同辈元素,每一个元素之后的所有同辈元素
        $('input ~ span').css('background','gray');
    </script>
</html>
第 第5章、属性选择器 章、属性选择器
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="./jq.js">
        </script>
    </head>
    <body>
        <p>Email:<input type="text" name="email" /></p>
        <p>密码:<input type="text" name="password" /></p>
        <p>重复密码:<input type="text" name="repassword" /></p>
        <p>学号:<input type="text" name="stunum" /></p>
        <p>学分:<input type="text" name="stuscore" /></p>
        <p>秘密:<input type="password" ></p>
    </body>
    <script type="text/javascript">
        //type选择
        $('input[type=password]').css('background','gray');
        
        //name 选择
        $('input[name=email]').css('background','green');
        
        //name不等于email
        $('input[name!=email]').css('background','red');
        
        //正则选择
        $('input[name$=password]').css('background','orange');//都用password结尾的
        $('input[name^=stu]').css('background','blue');//开头是stu
        $('input[name*=pass]').css('background','orange');//含有pass
    </script>
</html>
第 第6章、自定义属性行不行 章、自定义属性行不行?
<p>Email:<input type="text" aa='s' name="email" /></p>
$('input[aa=s]').css('background','green');
第 第7章、基础过滤器 章、基础过滤器如果选择器选出的结果仍不够细,可以用过滤器,进一步筛选.
过滤器一般写在"选择器"之后,如"选择器:过滤器"
基础过滤器是根据对象的"索引"值来查找
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="./jq.js">
        </script>
    </head>
    <body>
        <ul>
            <li>导航1</li>
            <li>导航2</li>
            <li>导航3</li>
            <li>导航4</li>
            <li>导航5</li>
            <li>导航6</li>
        </ul>
    </body>
    <script type="text/javascript">
        //第一个
        $('li:first').css('background','gray');
        //最后一个
        $('li:last').css('background','gray');
        //奇数
        $('li:odd').css('background','green');
        //偶数
    $('li:even').css('background','orange');
        //具体第几个 从0开始
        $('li:eq(3)').css('background','purple');
    </script>
</html>
第 第8章、内容过滤器 章、内容过滤器
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="./jq.js">
        </script>
    </head>
    <style media="screen">
        p{
            height: 20px;
            border: 1px solid blue;
        }
    </style>
    <body>
        <table border="1">
        <tr>
            <td>姓名</td>
            <td>性别</td>
            <td>年龄</td>
        </tr>
        <tr>
            <td>马云</td>
            <td>男</td>
            <td>26</td>
        </tr>
        <tr>            <td>奶茶妹</td>
            <td>女</td>
            <td>23</td>
        </tr>
        <tr>
            <td>强东</td>
            <td>男</td>
            <td>24</td>
        </tr>
        <tr>
            <td>金星</td>
            <td></td>
            <td><span>22</span></td>
        </tr>
        </table>
        <p><br /></p>
        <p>a</p>
        <p></p>
    </body>
    <script type="text/javascript">
        //找td中含有‘女’字的
        $('td:contains(女)').css('background','red');
        
        //找td为空的
        $('td:empty').css('background','yellow');
        
        //找出不为空的P标签(P标签下没有内容的)-->找到当爹的标签p
        $('p:parent').css('background','orange');
        
        //找出td下,含有span标签的-->标签下有标签的
        $('td:has(span)').css('background','blue');
        
    </script>
</html>
第 第9章、表单类型过滤器 章、表单类型过滤器
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="./jq.js">
        </script>
    </head>
    <body>
        <p><input type="text" /></p>
        <p><input type="password" /></p>
        <p><input type="checkbox" /></p>
        <p><input type="radio" /></p>
    </body>
    <script type="text/javascript">
        //旧版
        $('input[type=text]').css('background','red');
        //表单类型选择
        $('input:password').css('background','gray');
    </script>
</html>
第 第10章、可见性过滤器 章、可见性过滤器
可见性过滤器:
:hidden
匹配所有不可见元素,如果使用css的visibility属性让元素不显示但是占位,则不属于hidden了查找display:none的tr元素,$("tr:hidden")
:visible
匹配所有可见元素
查找所有display不为none的元素,$("tr:visible")
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="./jq.js">
        </script>
    </head>
    <body>
        <input type="button" value="一起分享" onclick="share();" />
        <div style="display:none">我是隐藏内容</div>
        <div>我是显示内容</div>
    </body>
    <script type="text/javascript">
        function share(){
            //div:hidden找到隐藏的部分
            $('div:hidden').css('display','block')
        }
    </script>
</html>
第 第11章、子元素过滤器 章、子元素过滤器
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="./jq.js">
        </script>
    </head>
    <body>
        <div>
            <p>a</p>
            <p>b</p>
        </div>
        <div>
            <p>c</p>
            <p>d</p>
        </div>
        <ul>
            <li><a href="">导航</a></li>
            <li><span>s</span><a href="">导航</a></li>
        </ul>
    </body>
    <script type="text/javascript">
        //同一层次下,最后一个P标签
        $('p:last-of-type').css('background','gray');
        //匹配li下的独生a标签
        $('li a:only-child').css('background','blue');
    </script>
</html>
第 第12章、操作节点的普通属性 章、操作节点的普通属性
<!DOCTYPE html>
<html>    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="./jq.js">
        </script>
    </head>
    <body>
        <img src="../JS/off.png" alt="" onclick="kai()"/>
    </body>
    <script type="text/javascript">
    function kai(){
  //判断 attr可以获取元素的普通属性
        if( $('img').attr('src').indexOf('off') >= 0 ){
            //此处注意:如果你写第二个参数就是改变值,不写就是获取
            $('img').attr('src' , '../JS/on.png');
        }else{
            $('img').attr('src','../JS/off.png');
        }
    }
    </script>
</html>
第 第13章、操作节点的 章、操作节点的CSS属性 属性
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="./jq.js">
        </script>
    </head>
    <style media="screen">
        div{
            width: 300px;
            height: 300px;
            border: 1px solid blue;
        }
    </style>
    <body>
        <div onclick="bian()"></div>
    </body>
    <script type="text/javascript">
        
        function bian(){
            var w = parseInt($('div').css('width'));
            var h = parseInt($('div').css('height'));
            var b = parseInt($('div').css('borderBottomWidth'));
            $('div').css('width', w+10+'px');
            $('div').css('height', h+10+'px');
            $('div').css('borderBottomWidth', b+1+'px');
        }
        /*
        function bian(){
            var w = $('div').width();
            var h = $('div').height();
            var b = parseInt($('div').css('borderBottomWidth'));
            
            $('div').css('width' , w+10+'px');
            $('div').css('height' , h+10+'px');
            $('div').css('borderBottomWidth' , b+10+'px');
        }
        */    </script>
</html>
第 第14章、操作节点的布尔属性 章、操作节点的布尔属性
全选、全不选问题
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="./jquery.js">
        </script>
    </head>
    <body>
        <input type="button" name="name" value="全选" onclick="quan()">
        <input type="button" name="name" value="不选" onclick="bu()">
        <p>
            <input type="checkbox" name="name" value="">
        </p>
        <p>
            <input type="checkbox" name="name" value="">
        </p>
        <p>
            <input type="checkbox" name="name" value="">
        </p>
        <p>
            <input type="checkbox" name="name" value="">
        </p>
    </body>
    <script type="text/javascript">
        /*
        *在DOM中,布尔属性就是有或者没有两种情况,网上说的checked='checked'这种
        *方式并不准确,只写checked就行了;
        *********************************
        *猜测:attr的方式,虽然修改了DOM中的属性值,但是
        *并不一定每次都写入内存,这个取决于浏览器在加载DOM树时,如何操作内存中的数据;
        *因此,JQuery 的作者专门封装了prop,来直接通过浏览器操作内存数据,使浏览器改
        *变DOM中的布尔属性
        
        function quan(){
            $("input:checkbox").attr('checked',true);
        }
        function bu(){
            $("input:checkbox").attr('checked',false);
        }
        */
    
        //对于HTML的布尔属性,JQ用prop操作
        function quan(){
            $("input:checkbox").prop('checked',true);
        }
        function bu(){
            $("input:checkbox").prop('checked',false);
        }
    </script>
</html>
一道题目:http://www.zixue.it/thread-15687-1-1.html
第 第15章、删除 章、删除DOM节点 节点
<!DOCTYPE html><html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script type="text/javascript" src="./jq.js">
        </script>
    </head>
    <body>
        <input type="button" name="name" value="删除" onclick="quan()">
        <input type="button" name="name" value="清空" onclick="bu()">
        <ul>
            <li>导航1</li>
            <li>导航2</li>
            <li>导航3</li>
            <li>导航3</li>
        </ul>
    </body>
    <script type="text/javascript">
    
    //观察两种方式的不同
  function quan(){
        $('ul').remove();//删除此节点
    }
    function bu(){
        $('ul').empty();//清空节点下的内容
    }
    </script>
</html>
第 第16章、增加节点 章、增加节点
接上节代码
....
<input type="button" value="增加li" onclick="zheng();">
...
function zeng() {
    //添加标签到ul的最下方
 $('<li>导航5</li>').appendTo($('ul'));
 //为ul添加一个标签到最下方
 $('ul').append('<li>导航6</li>');
 //为ul添加一个标签到最上方
 $('ul').prepend('<li>导航6</li>');
}
第 第17章、节点包裹 章、节点包裹
<body>
 <h1>jQuery包结点</h1>
 <input type="button" value="用p标签包住每个input" onclick="wp()" />
 <input type="button" value="用p标签包住所有input" onclick="wpa()" />
    <input type="button" value="li中的文字加粗" onclick="cu()" />
 <input type="text" name="" id="" />
 <input type="text" name="" id="" />
 <input type="text" name="" id="" />
 <ul>
  <li>春</li>
  <li>夏</li>
  <li>秋</li>
  <li>冬</li>
 </ul>
</body>
<script>
//用P标签包含住每一个input:textfunction wp() {
 $('input:text').wrap('<p></p>');
}
//用一个P标签包含住所有input:text
function wpa() {
    $('input:text').wrapAll('<p></p>');
}
//为li标签里的内容添加b标签
function cu() {
 $('li').wrapInner('<b></b>');
}
</script>
第 第18章、 章、jQuery对象与 对象与DOM对象的关系与转换 对象的关系与转换
<body>
 <h1>jQuery对象与DOM对象的关系与转换</h1>
 <ul>
  <li>导航1</li>
  <li>导航2</li>
  <li>导航3</li>
  <li>导航4</li>
 </ul>
 <p id="test">test</p>
</body>
<script>
    //没有效果并且报错,充分证明$(选择器)返回值不是一个DOM 对象
    //$('#test').style.background = 'blue';
    //没有效果并报错,证明DOM 对象也不是$()的返回值
    //var test = document.getElementById('test');
    //test.css('background','blue');
    //$()返回的到底是什么?
    //是对象,但不是DOM 对象,而是JQuery对象
    /*
     * jQuery对象与DOM对象是什么关系?
     * jQuery对象按选择器,选中1个或者多个DOM对象,
     * 把这些DOM对象,放在jQuery对象上,
     * 索引从0 开始
     * */
    //console.log($('li'));
    //jQuery对象转化为DOM对象,直接[索引]取值即可
    //$('li')[2].style.background = 'blue';
    //找手册.也可以用get(索引)方法
    //$('li').get(3).style.background = 'blue';
    //DOM对象转化为jQuery对象,直接把DOM对象当作值或者参数传给$()
    var test = document.getElementById('test')[0];
    $(test).css('background','green');
</script>
第 第19章、 章、jQuery对象的遍历 对象的遍历
<body>
    <h1>遍历jQuery对象的内部的DOM对象</h1>
    <input type="button" value="反选" onclick="fan()" />
    <p>选择1:<input type="checkbox" /></p>
    <p>选择1:<input type="checkbox" /></p>
    <p>选择1:<input type="checkbox" /></p>
    <p>选择1:<input type="checkbox" /></p>
    <p>选择1:<input type="checkbox" /></p>
</body><script>
    /*
    //面向过程的思路
    function fan(){
        var cbs = $('input:checkbox');
        for(var i=0;i<cbs.length;i++){
            if($(cbs[i]).prop('checked')){
                $(cbs[i]).prop('checked',false);
            }else{
                $(cbs[i]).prop('checked',true);
            }
        }
    }
    */
    /*
    //面向函数式的思路,回调函数
    //系统函数 each() ->每一个,一个一个往下走,
    //只带着往下走,每走一步的具体操作,你说了算
    //在这个回调中,this是谁?
    //在循环过程中,循环到那个DOM对象,回调函数中的this就是指向哪个DOM对象
    */
    /*function fan() {
        $('input:checkbox').each(function(){
            //alert('当');
            //this -> 走到谁哪里,this就是谁 此时的this是DOM对象
            //console.log(this);
            if($(this).prop('checked')){
                $(this).prop('checked',false);
            }else{
                $(this).prop('checked',true);
            }
        });
    }*/
    //更简化的方式,直接对自己取反
    function fan() {
        $('input:checkbox').each(function(){
            this.checked = !this.checked;
        });
    }
</script>
第 第20章、 章、jQuery处理事件的特点 处理事件的特点
1:和原生事件的语法区别
原生绑定: xxDOMNode.onclick=function(){} , xx.onmousever = function();
原生触发: xxDOMNode.click(), xx.submit(); xx.focus();
jQuery绑定: $(selector).click(function(){});
jQuery触发: $(selector).click();
2:和xx.onclick等的绑定次数的区别
xx.onclick = function(){},是给onclick属性赋值,赋多个值,前面的被覆盖,只有最后一个函数被调用
$(selector).click(函数1);
$(selector).click(函数2);
$(selector).click(函数3); --> 会按绑定的顺序,逐个执行
....
<body>
    <h1>jquery事件与原生事件的比较</h1>
        <p><input type="text" name="form111" value="email..."></p>
        <p><input type="text" name="form222" value="email..."></p>
        <p><input type="button" name="" value="test1"></p>     <p><input type="button" name="" value="test2"></p>
</body>
<script>
// 原生JS  绑定事件与触发事件的区别
var inps = document.getElementsByTagName('input');
//1.鼠标过来,用的是onmouseover
inps[0].onmouseover = function () { //原生绑定
    this.value = ''; //2.内容设置为空
    this.focus(); // 原生触发  //3.设置焦点
}
// jQuery  绑定事件与触发事件
$('input[name=form222]').mouseover(function(){
    $(this).val(); // jq封装val(''),传参则设置对象的value,不传参则获取对象的value
    $(this).focus();
});
// 绑定次数上的区别
var inps = document.getElementsByTagName('input');
//原生绑定
inps[2].onclick = function() {
    alert('你');
}
inps[2].onclick = function() {
    alert('是');
}
inps[2].onclick = function() {
    alert('谁');
}
//jq绑定
$(inps[3]).click(function(){
    alert('你');
});
$(inps[3]).click(function(){
    alert('是');
});
$(inps[3]).click(function(){
    alert('谁');
});
</script>
第 第21章、独特的 章、独特的ready事件 事件
什么是 什么是ready事件 事件:回忆我们之前学的 回忆我们之前学的load事件 事件,是等所有的资源都加载完毕以后触发的函数 是等所有的资源都加载完毕以后触发的函数,jq也为此封装的 也为此封装的ready事件 事件,并且在此基础上做了改 并且在此基础上做了改
进和加强 进和加强.ready事件跟 事件跟onload解析的地点不同 解析的地点不同,load事件要等所有的页面资源都加载完毕以后触发 事件要等所有的页面资源都加载完毕以后触发load事件 事件,而 而ready事件是在解析 事件是在解析DOM模型的 模型的
时候就可以触发 时候就可以触发ready,只要检测到 只要检测到DOM树加载完毕后就是加载完毕了 树加载完毕后就是加载完毕了,同样 同样,它也可以检测你到底加载到哪一步了 它也可以检测你到底加载到哪一步了,从而实现 从而实现
以下是DOM文档加载过程:
(1) 解析HTML结构。
(2) 加载外部脚本和样式表文件。
(3) 解析并执行脚本代码。
(4) 构造HTML DOM模型。//ready
(5) 加载图片等外部文件。
(6) 页面加载完毕。//load
x.php
header('Content-type:image/png');
sleep(3);//等待3秒钟后做...$img = imagecreatetruecolor(100,100);
imagepng($img);
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<img src="x.php" alt="">
</body>
<script>
    window.onload = function(){
        alert('23');
    }
     // $(document).ready(function(){alert('DOM已加载完毕,不等图片')});
    //直接将函数放到$(),默认是dom加载完毕
    //简化写法
    $(function(){
    alert('DOM已加载完毕');
    });
</script>
</html>
第 第22章、 章、jQuery特有的绑定函数 特有的绑定函数
bind(): 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数 --> 说白了就是为你帮你 说白了就是为你帮你,想在的元素上绑定一个事件 想在的元素上绑定一个事件
unbind(): 将以上绑定的事件移除 将以上绑定的事件移除
<body>
<input type="button" value="给div加点击事件" onclick="jia();"/>
<input type="button" value="给div取消点击事件" onclick="jie();"/>
<div style="width:200px;height:200px;background:gray;"></div>
</body>
<script>
    function ding() {
        alert('丁');
    }
    //添加绑定事件
    function jia(){
        $('div').bind('click',function(){alert('123')});
        $('div').bind('click',ding);//为div绑定一个ding函数
    }
    //解除事件绑定
    function jie(){
        $('div').unbind('click',ding);
    }
</script>
第 第23章、一次性绑定 章、一次性绑定 one()
<body>
....
<input type="button" value="有些话对你说">
....
</body>
<script><script>
//为所有input绑定事件
    $('input').one('click' , function(){
        alert('今晚操场见');//很多游戏网站就这么做的
    });
</script>
第 第24章、事件委托 章、事件委托
事件委托:回忆js中的事件委托,逻辑:是将你想触发的事件委托给父元素解决.
<body>
 <input type="button" value="添加li" />
 <ul>
  <li>春</li>
  <li>夏</li>
  <li>秋</li>
 </ul>
</body>
<script>
$('ul').on('click' , 'li' ,  function(){
    //alert('duang');
    alert($(this).html());
});
$('input').click(function() {
 $('ul').append('<li>冬</li>');
});
</script>
off() 是on()的反向操作,类似bind与unbind的效果
第 第25章、事件对象 章、事件对象
<body>
<div>点击</div>
</body>
<script>
    $('div').click(function(ev){
        //console.log(ev);
        alert(ev.type + ':' +ev.which);
    });
</script>
第 第26章、动画 章、动画
2秒钟消失的 秒钟消失的div
<style>
 div {
  width: 400px;
  height: 400px;
  background: blue;
 }
</style>
<body>
 <div></div>
</body>
<script>
$('div').click(function(){
    //hide不同参数,效果不一样
 $(this).hide(2000,function(){alert('走了')});//参数1:多长时间(毫秒),参数2:然后干什么事儿
});</script>
向上收起的广告图、图片淡入淡出 向上收起的广告图、图片淡入淡出
<body>
 <div id="ad">
  <img src="./sm.jpg" alt="" />
 </div>
</body>
<script>
//slideUp(执行时间--毫秒)收起
//slideDown(执行时间--毫秒) 放下
//fadeIn (执行时间--毫秒)淡入
//fadeOut(执行时间--毫秒)淡出
//delay (毫秒)延时执行
$('#ad').delay(3000).slideUp(2000).delay(1000).slideDown(1000);
$('#ad').delay(3000).fadeOut(2000).delay(1000).fadeIn(1000);
</script>
第 第27章、 章、ajax之 之GET请求 请求
ajax验证用户名 验证用户名
想一下js中的ajax需要几步?
$un = $_GET['un'];
echo in_array($un,array('zhangsan','lisi','laoliu'))?1:0;
<body>
用户名: <input type="text" name="username" /><span id="reg"></span>
</body>
<script>
    $('input:text').blur(function(){
        var url = 'x.php?u=' + this.value;
        $.get(url , function(res){//如果获取后台相应的值,jq写了一个封装,你只需要写一个回调函数,并且写一个参数,会自动的把结果返回给你写的回调函数的第
            if(res == '1') {
                $('#reg').html('<font color="red">已被占用</font>');
            } else {
                $('#reg').html('<font color="green">可以使用</font>');
            }
        });
    });
</script>
第 第28章、 章、Ajax之 之POST
注册用户 注册用户
<body>
 <h1>jquery 发送POST ajax查询</h1>
 <form action="">
  <p>用户名:<input type="text" name="u" /></p>
  <p>密码:<input type="text" name="p" /></p>
  <p><input type="submit" value="提交" /></p>
 </form>
</body>
<script>
$('form').submit(function(){
 var data = {
  'u' : $('input[name="u"]').val(),
  'p' : $('input[name="p"]').val()
 };
 $.post('31.php' , data , function(res){
  alert(res);
 });
 return false;
});
</script>
第 第29章、 章、json格式返回值 格式返回值
php
$news = array(
'小泽玛丽亚',
'藏木马一',
'有力妹子'
 );
echo json_encode($news);
<body>
<h1>jquery处理ajax的json返回值</h1>
<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>
</body>
<script>
    $('ul').click(function(){
        //如果PHP里的数组是关联数组,则JSON处理时,msg的返回值是对象
        //如果PHP里的数组是索引数组,则JSON处理时,msg的返回值是数组
        //$.get('6.php',function(msg){console.log(msg)},'json');
        $.get('6.php',function(msg){
            //console.log(msg);
            //console.log(JSON.parse(msg));
            
            //面向过程的方式
            //for(var i=0;i<msg.length;i++){
                //$('li')[i].innerHTML = msg[i];
            //}
            //面向函数式的编程
            var i=0;
            $('li').each(function(){
                this.innerHTML = msg[i++];
            });
        },'json');
    });
</script>
第 第30章、 章、ajax事件监听函数 事件监听函数
<body>
<h1>$.ajax()</h1>
<form action="">
    <input type="submit" value="提交" />
</form>
</body>
<script>
  $('form').submit(function(){
      var params = {
          'type' : 'post',          'data' : 'u=玛丽亚&email=qq@qq',
          'success':function(msg){
                alert(msg);
          }
      };
      $.ajax('6.php',params); //$.ajax是$.get、$.post的底层函数
      /*
      * $('input:submit').prop('disabled',true);
      * 为什么不用这种方式?
      * 页面大,用到ajax的地方很多,这个是单独监听,下面是全部监听,
      * 只要是ajax被触发,用统一的方式去处理,方便高效;
      * */
      return false;
  });
    //监听document对象,一旦有ajax开始执行,则触发函数
    $(document).ajaxStart(function(){
        $('input:submit').prop('disabled',true);
    });
</script>
注意 注意:
ajaxStart()这个函数,只能绑定$(document)结点上.(from jQuery1.8+)
第 第31章、特效只是 章、特效只是:DOM操作 操作+想像力 想像力
小小的图片切换效果
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
#ad {
width: 1024px;
height: 768px;
overflow: hidden;
position: relative;   <!--相对定位,为了123 -->
}
ul {        <!--ul样式 -->
position: absolute;
bottom: 0px;
right:0px;
}
li {        <!--li样式 -->
    float: left;
    width: 20px;
    height: 20px;
    border:1px solid blue;
    list-style: none;
    margin: 0 10px;
}
.active {
    background: blue;
}
</style>
<body>
    <div id="ad">
        <img src="a.jpg" alt="">
        <img src="b.jpg" alt="">
        <img src="c.jpg" alt="">        <img src="c.jpg" alt="">
        <ul>
            <li class='active'>1</li>
            <li>2</li>
            <li>3</li>
        </ul>
    </div>
</body>
<script src="jquery.js"></script>
<script>
var i = 0;
setInterval(function(){
    $('img:first').fadeOut(1000 , function(){
        $('img:first').appendTo('#ad');
        $('img:last').show();
        //应该是2的带active
        //1.先删除所有的class,再计算一下
        $('li').removeClass();
        //$($('li').get(++i%3)).addClass('active');
        $('li').get(++i%3).className = 'active';
    });
} , 2000);
</script>
</html>

posted @ 2017-02-22 22:15  岁月静好13543  阅读(222)  评论(0编辑  收藏  举报
AmazingCounters.com