zoukankan      html  css  js  c++  java
  • jQuery 教程

    大纲

    一、jQuery简介 
    二、jQuery 和Dom关系及jQuery版本 
      1、jQuery版本 
      2、jQuery和Dom转换 
    三、jQuery 选择器 
      1.1、基本 
      1.2、层级 
      2、基本筛选器 
      3、属性选择器 
      4.1、表单 
      4.2、表单对象属性 
    四:jQuery 示例 
      1、示例:全选、反选、取消 
      2.1、筛选器示例:左侧菜单点击展开内容 
      2.2、筛选器 
      3.1、jQuery 文本、样式以、属性、文档处理操作 
      3.2、示例:模态对话框 
      4、示例:tab切换菜单 
      5、示例:点赞以及jQuery css操作 
      6、示例:拖动面板以及位置操作 
      7.1、jQuery绑定事件及示例 
      7.2、JQuery事件之阻止事件发生 及示例:表单验证 
    五、jQuery 扩展

    一、jQuery简介

    jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

    jQuery的核心特性可以总结为:

      具有独特的链式语法和短小清晰的多功能接口;

      具有高效灵活的css选择器,并且可对CSS选择器进行扩展;

      拥有便捷的插件扩展机制和丰富的插件。

      jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

    模块 <=> 类库 
    DOM/BOM/JavaScript的类库,所以jQuery也分为两部分:

    • 查找元素
    • 操作元素

    jQuery 中文文档

    jQuery官网地址

     

    二、jQuery 和Dom关系及jQuery版本

    1、jQuery版本

    当前jQuery版本:这里使用的1.x系列最新版本

    1.x系列 兼容性最好,1系列当前最新1.12 
    2.x系列 
    3.x系列 最新的版本,IE低版本不再支持
    

      

    下载的时候有两个版本:一个标准版、一个min压缩版。测试时使用标准版,线上建议使用压缩版。

    下载后,引入jQuery类库:

    <head>
        <link rel="stylesheet" href="1.css">
        <!--引入css文件-->
        <style>
            /* 写css样式 */
        </style>
    
        <script src="jquery-1.12.4.js"></script>
        <!--引入jQuery类库,JavaScript一般放到body尾部-->
        <script>
            // script 代码。调用使用 jQuery.xxx
            // jQuery.xxx  <==>  $.xxx  $等同于jQuery关键字
        </script>
    </head>
    

      

    2、jQuery和Dom转换

    > $('#i1')     // jQuery获取
    [<input type="text" id="i1">]
    > document.getElementById('i1')  // dom获取
    <input type="text" id="i1">
    > $('#i1')[0] // jQuery对象转换为dom对象 <input type="text" id="i1"> > $(document.getElementById('i1')) // dom对象转换为jQuery对象 [<input type="text" id="i1">] // 转换: // jquery对象[0] => Dom对象 // Dom对象 => $(Dom对象)

      

    三、jQuery 选择器

    1.1、基本

      > id 选择器

      $('#idName')

      > class 选择器

      $('.className')

      > 标签选择器

      $('tagName')

      > 组合选择器

      $('a,.c1,#i10')

    1.2、层级

    • $('#i10 a')       子子孙孙(i10里所有a标签)
    • $(‘#i10>a’)      儿子(只取子标签里的a标签)
    • prev + next    下一个标签
    • prev ~ siblings  兄弟标签

      

    2、基本筛选器

    :first          // 获取匹配的第一个元素
    :last
    :not(selector)  //去除所有与给定选择器匹配的元素
    // 在jQuery 1.3中,已经支持复杂选择器了(例如:not(div a) 和 :not(div,a))
    :even           // 匹配所有索引值为偶数的元素,从 0 开始计数
    :odd            // 匹配所有索引值为奇数的元素,从 0 开始计数
    :eq(index)      :gt(index)      :lt(index) 
    // 等于           大于          小于
    :header         // 匹配如 h1, h2, h3之类的标题元素
    

      

    3、属性选择器

    之前的内容,没有对自定义属性进行查找的,如:<a fgf='22'></a>

    jQuery 支持对自定义属性的获取查找.

    $('[fgf]')       // 具有fgf属性的所有标签
    $('[fgf="22"]')  // fgf属性等于22的标签
    [attribute!=value]
    [attribute^=value]
    [attribute$=value]
    [attribute*=value]
    [attrSel1][attrSel2][attrSelN]
    

      

    4.1、表单

    <input type='text'/>
    <input type='text'/>
    <input type='file'/>
    <input type='password'/>
    

      

    $("input[type='text']")    // 不使用表单选择器,也能实现
    $(':text')             // 使用表单选择器
    

      

    4.2、表单对象属性

    :enabled        // 可编辑,默认就是
    :disabled       // 不可编辑
    :checked        // 被选中(单选框、复选框)
    :selected       // 被选中(下拉框)
    

      

    四:jQuery 示例

    1、示例:全选、反选、取消

    相关知识点:

    - 选择器
    - .prop   // 属性方法
        $('#tb:checkbox').prop('checked');        获取值
        $('#tb:checkbox').prop('checked', true);  设置值
    - .each    // 工具:数组和对象操作
        jQuery方法内置循环: $('#tb:checkbox').xxxx
    
    - $('#tb:checkbox').each(function(k){
            // k当前索引
            // this,DOM,当前循环的元素 $(this)
        })
    - 三元运算  var v = 条件 ? 真值 : 假值
    

      

    <body>
        <input type="button" value="全选" onclick="checkAll();" />
        <input type="button" value="反选" onclick="reverseAll();" />
        <input type="button" value="取消"  onclick="cancelAll();"/>
        <table border="1">
            <thead>
                <tr>
                    <th>选项</th><th>IP</th><th>PORT</th>
                </tr>
            </thead>
            <tbody id="tb">
                <tr>
                    <td><input type="checkbox" /></td>
                    <td>1.1.1.1</td>
                    <td>80</td>
                </tr>
                <tr>
                    <td><input type="checkbox" /></td>
                    <td>1.1.1.1</td>
                    <td>80</td>
                </tr>
                <tr>
                    <td><input type="checkbox" /></td>
                    <td>1.1.1.1</td>
                    <td>80</td>
                </tr>
            </tbody>
        </table>
        <script src="jquery-1.12.4.js"></script>
        <script>
            function checkAll() {
                $('#tb :checkbox').prop('checked',true);
            }       // .prop 专门对checked操作
            function cancelAll() {
                $('#tb :checkbox').prop('checked',false);
            }
            function reverseAll() {
                $(':checkbox').each(function(k){  // .each 循环选中的每一个元素
                    /*  Dom实现
                    if(this.checked){
                        this.checked = false;
                    }else{
                        this.checked = true;
                    } */
                    // this,代指当前循环的每一个元素;三元运算var v = 条件? 真值:假值
                    var v = $(this).prop('checked')?false:true;
                    // console.log(k,this);
                    $(this).prop('checked',v);
                })
            }
        </script>
    </body>
    

      

    2.1、筛选器示例:左侧菜单点击展开内容

    筛选器:

    $(this).next()         // 下一个
    $(this).prev()         // 上一个
    $(this).parent()       // 父
    $(this).children()     // 孩子
    $('#i1').siblings()    // 兄弟(不包含自己)
    $('#i1').find('#i1')   // 子子孙孙中查找
    

    添加移除样式:

    $('#i1').addClass(..)  // 添加样式
    $('#i1').removeClass(..)// 移除样式
    

      

    示例:

    <head>
        <style>
            .header{
                background-color: royalblue;
            }
            .content{
                min-height: 70px;
            }
            .hide{
                display: none;
            }
        </style>
    </head>
    <body>
        <div style="height:400px; 200px;border: 1px solid #dddddd">
            <div class="item">
                <div class="header">标题一</div>
                <div id="i1" class="content hide">内容</div>
            </div>
            <div class="item">
                <div class="header">标题二</div>
                <div class="content hide">内容</div>
            </div>
            <div class="item">
                <div class="header">标题三</div>
                <div class="content hide">内容</div>
            </div>
        </div>
        <script src="jquery-1.12.4.js"></script>
        <script>
            $('.header').click(function(){
               // 当前点击的标签 $(this); .next 获取某个标签的下一个标签
               // $(this).next().removeClass('hide');  移除hide属性
               // $(this).parent().siblings().find('.content').addClass('hide')
               $(this).next().removeClass('hide').parent().siblings().find('.content').addClass('hide')
               // 链式编程
            })
        </script>
    </body>
    

      

    2.2、筛选器

    $('#i1').next()		// 下一个			
    $('#i1').prev()    //往上找
    $('#i1').nextAll() // 下面所有
    $('#i1').prevAll()
    $('#i1').nextUntil('#ii1') // 下面直到哪里
    $('#i1').prevUntil('#ii1')
    $('#i1').parent() // 父标签 $('#i1').parents() // 取得一个包含着所有匹配元素的祖先元素的元素集合 $('#i1').parentsUntil() //查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。 $('#i1').children() $('#i1').siblings() $('#i1').find() $('li').eq(1) <——> $('li:eq(1)') first() last() hasClass(class)

      

    3.1、jQuery 文本、样式以、属性、文档处理操作

    • 文本操作:
    $(..).text()            // 获取文本内容
    $(..).text("<a>1</a>")  // 设置文本内容
    
    $(..).html()           // 获取
    $(..).html("<a>1</a>")  // 设置
    
    $(..).val()                // 获取
    $(..).val(..)          // 设置
    

      

    • 样式操作:
    addClass 
    removeClass 
    toggleClass 比如实现网页开关灯功能
    

      

    开关灯示例:

    <head>
        <style>
            .hide{
                display: none;
            }
        </style>
    </head>
    <body>
        <input type='checkbox' id='i2'  />
    
        <input id="i1" type="button" value="开关" />
        <div class="c1 hide">asdfasdf</div>
    
        <script src="jquery-1.12.4.js"></script>
        <script>
            $('#i1').click(function(){
    //            if($('.c1').hasClass('hide')){
    //                $('.c1').removeClass('hide');
    //            }else{
    //                $('.c1').addClass('hide');
    //            }
                $('.c1').toggleClass('hide');    // 一句搞定
            })
        </script>
    </body>
    

      

    • 属性操作:
    // 专门用于做自定义属性
    $(..).attr('n')          // 获取
    $(..).attr('n','v')      // 设置
    $(..).removeAttr('n')    // 删除
    
    <input type='checkbox' id='i1'  />
    // 专门用于chekbox,radio  jQuery1、2版本checkbox使用attr的话有bug,所以用prop
    $(..).prop('checked')
    $(..).prop('checked', true)
    

      

    • 文档处理:
    append    // 往后加
    prepend   // 往前加
    after     // 紧挨着后面
    before    // 紧挨着前面
    
    remove    // 删除
    empty     // 只清空内容
    
    clone     // 克隆一份数据
    

      

    3.2、示例:模态对话框

      

    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .hide{
                display: none;
            }
            .modal{
                position: fixed;
                top: 50%;
                left: 50%;
                 500px;
                height: 400px;
                margin-left: -250px;
                margin-top: -250px;
                background-color: #eeeeee;
                z-index: 10;
            }
            .shadow{
                position: fixed;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                opacity: 0.6;
                background-color: black;
                z-index: 9;
            }
        </style>
    </head>
    <body>
        <a onclick="addElement();">添加</a>
        <table border="1" id="tb">
            <tr>
                <td target="hostname">1.1.1.11</td>
                <td target="port">80</td>
                <td target="ip">80</td>
                <td>
                    <a class="edit">编辑</a> | <a class="del">删除</a>
                </td>
            </tr>
            <tr>
                <td target="hostname">1.1.1.12</td>
                <td target="port">80</td>
                <td target="ip">80</td>
                <td>
                    <a class="edit">编辑</a> | <a class="del">删除</a>
                </td>
            </tr>
            <tr>
                <td target="hostname">1.1.1.13</td>
                <td target="port">80</td>
                <td target="ip">80</td>
                <td>
                    <a class="edit">编辑</a> | <a class="del">删除</a>
                </td>
            </tr>
        </table>
        <div class="modal hide">
            <div>
                <input name="hostname" type="text"  />
                <input name="port" type="text" />
                <input name="ip" type="text" />
            </div>
            <div>
                <input type="button" value="取消" onclick="cancelModal();" />
                <input type="button" value="确定" onclick="confirmModal();" />
            </div>
        </div>
        <div class="shadow hide"></div>
        <script src="jquery-1.12.4.js"></script>
        <script>
    
            $('.del').click(function () {
                $(this).parent().parent().remove();
            });
    
            function  confirmModal() {
    
                var tr = document.createElement('tr');
                var td1 = document.createElement('td');
                td1.innerHTML = "11.11.11.11";
                var td2 = document.createElement('td');
                td2.innerHTML = "8001";
    
                $(tr).append(td1);
                $(tr).append(td2);
    
                $('#tb').append(tr);
    
                $(".modal,.shadow").addClass('hide');
            }
    
            function  addElement() {
                $(".modal,.shadow").removeClass('hide');
            }
            function cancelModal() {
                $(".modal,.shadow").addClass('hide');
                $('.modal input[type="text"]').val("");
            }
    
            $('.edit').click(function(){
                $(".modal,.shadow").removeClass('hide');
                // this
                var tds = $(this).parent().prevAll();
                tds.each(function () {
                    // 获取td的target属性值
                    var n = $(this).attr('target');
                    // 获取td中的内容
                    var text = $(this).text();
                    var a1 = '.modal input[name="';
                    var a2 = '"]';
                    var temp = a1 + n + a2;
                    $(temp).val(text);
                });
    //            var port = $(tds[0]).text();
    //            var host = $(tds[1]).text();
    //
    //            $('.modal input[name="hostname"]').val(host);
    //            $('.modal input[name="port"]').val(port);
                // 循环获取tds中内容
                // 获取 <td>内容</td> 获取中间的内容
                // 赋值给input标签中的value
            });
        </script>
    </body>
    

      注意:上面这个示例的添加新值 为写死的,没有按照正确的业务逻辑去实现。

    4、示例:tab切换菜单

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .hide{
                display: none;
            }
            .menu{
                height: 38px;
                background-color: #eeeeee;
                line-height: 38px;
            }
            .active{
                background-color: brown;
            }
            .menu .menu-item{
                float: left;
                border-right: 1px solid red;
                padding: 0 5px;
                cursor: pointer;
            }
            .content{
                min-height: 100px;
                border: 1px solid #eeeeee;
            }
        </style>
    </head>
    <body>
        <div style=" 700px;margin:0 auto">
            <div class="menu">
                <div  class="menu-item active" a="1">菜单一</div>
                <div  class="menu-item" a="2">菜单二</div>
                <div  class="menu-item" a="3">菜单三</div>
            </div>
            <div class="content">
                <div b="1">内容一</div>
                <div class="hide"  b="2">内容二</div>
                <div class="hide" b="3">内容三</div>
            </div>
        </div>
        <script src="jquery-1.12.4.js"></script>
        <script>
            $('.menu-item').click(function(){
                $(this).addClass('active').siblings().removeClass('active');
                var target = $(this).attr('a');
                $('.content').children("[b='"+ target+"']").removeClass('hide').siblings().addClass('hide');
            });
        </script>
    </body>
    </html>
    

      上面是通过自定义属性实现的,下面不用自定义属性,用索引也能实现。

    index 获取索引位置

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .hide{
                display: none;
            }
            .menu{
                height: 38px;
                background-color: #eeeeee;
                line-height: 38px;
            }
            .active{
                background-color: brown;
            }
            .menu .menu-item{
                float: left;
                border-right: 1px solid red;
                padding: 0 5px;
                cursor: pointer;
            }
            .content{
                min-height: 100px;
                border: 1px solid #eeeeee;
            }
        </style>
    </head>
    <body>
        <div style=" 700px;margin:0 auto">
            <div class="menu">
                <div  class="menu-item active" >菜单一</div>
                <div  class="menu-item" >菜单二</div>
                <div  class="menu-item" >菜单三</div>
            </div>
            <div class="content">
                <div >内容一</div>
                <div class="hide" >内容二</div>
                <div class="hide">内容三</div>
            </div>
        </div>
        <script src="jquery-1.12.4.js"></script>
        <script>
            $('.menu-item').click(function(){
                $(this).addClass('active').siblings().removeClass('active');
                $('.content').children().eq($(this).index()).removeClass('hide').siblings().addClass('hide');
            });
        </script>
    </body>
    </html>
    

      

    5、示例:点赞以及jQuery css操作

    Query css处理操作

    $('t1').css('样式名称','样式值')
    $('t1').css({'样式名称1':'样式值2','样式名称2':'样式值2'}) 点赞: - $('t1').append() - $('t1').remove() - setInterval - 透明度 1 --> 0 - position - 字体大小,位置

      

    点赞示例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .container{
                padding: 50px;
                border: 1px solid #dddddd;
            }
            .item{
                position: relative;
                 30px;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="item">
                <span>赞</span>
            </div>
        </div>
        <div class="container">
            <div class="item">
                <span>赞</span>
            </div>
        </div>
        <script src="jquery-1.12.4.js"></script>
        <script>
            $('.item').click(function () {
                AddFavor(this);
            });
            function AddFavor(self) {
                // DOM对象
                var fontSize = 15;
                var top = 0;
                var right = 0;
                var opacity = 1;
    
                var tag = document.createElement('span');
                $(tag).text('+1');
                $(tag).css('color','green');
                $(tag).css('position','absolute');
                $(tag).css('fontSize',fontSize + "px");
                $(tag).css('right',right + "px");
                $(tag).css('top',top + 'px');
                $(tag).css('opacity',opacity);
                $(self).append(tag);
    
                var obj = setInterval(function () {
                    fontSize = fontSize + 10;
                    top = top - 10;
                    right = right - 10;
                    opacity = opacity - 0.1;
    
                    $(tag).css('fontSize',fontSize + "px");
                    $(tag).css('right',right + "px");
                    $(tag).css('top',top + 'px');
                    $(tag).css('opacity',opacity);
                    if(opacity < 0){
                        clearInterval(obj);
                        $(tag).remove();
                    }
                }, 40);
            }
        </script>
    </body>
    </html>
    

      

    6、示例:拖动面板以及位置操作

    • 位置操作:
    $(window).scrollTop()   // 获取windows滑轮位置  // 注意是谁的滑轮
    $(window).scrollTop(0)  // 设置windows滑轮位置
    scrollLeft([val])       // 左右滚动滑轮设置
    
    $('#i1').offset()      // 获取标签位置
    offset().left           // 指定标签在html中的坐标位置
    offset().top            // 指定标签在html中的坐标位置
    

      

    <!--    position()      指定标签相对父标签(找到relative)标签的坐标-->
    <div style='relative'>
        <div>
            <div id='i1' style='position:absolute;height:80px;border:1px'></div>
        </div>
    </div>
    <script>  // 纯高度,边框,外边距,内边距
    $('i1').height()           // 获取标签的高度 纯高度
    $('i1').innerHeight()      // 获取自身高度+padding;
    $('i1').outerHeight()      // 参数:false-->获取自身高度+padding+border;
    $('i1').outerHeight(true)  // 获取自身高度+padding+border+margin;
    </script>
    

      

    • 拖动面板示例:

    注意这里直接使用#title方式不是太好。

    <body>
        <div style="border: 1px solid #ddd; 600px;position: absolute;">
            <div id="title" style="background-color: black;height: 40px;"></div>
            <div style="height: 300px;"></div>
        </div>
    <script type="text/javascript" src="jquery-1.12.4.js"></script>
    <script>
        $(function(){
            $('#title').mouseover(function(){
                $(this).css('cursor','move'); // 当鼠标放倒对象上时,光标设置为'move'样式
            });
            $("#title").mousedown(function(e){
                //console.log($(this).offset());
                var _event = e || window.event;
                var ord_x = _event.clientX;
                var ord_y = _event.clientY;
    
                var parent_left = $(this).parent().offset().left;
                var parent_top = $(this).parent().offset().top;
    
                $('#title').on('mousemove', function(e){
                    var _new_event = e || window.event;
                    var new_x = _new_event.clientX;
                    var new_y = _new_event.clientY;
    
                    var x = parent_left + (new_x - ord_x);
                    var y = parent_top + (new_y - ord_y);
    
                    $(this).parent().css('left',x+'px');
                    $(this).parent().css('top',y+'px');
                })
            });
            $("#title").mouseup(function(){
                $("#title").off('mousemove');
            });
        })
    </script>
    </body>
    

      

    7.1、jQuery绑定事件及示例

    • 绑定事件知识点:
      // DOM: 三种绑定方式(直接绑定;先获取Dom对象再绑定;同时绑定多个事件addEventListener)
      // jQuery:四种
        // 第一种: 获取jQuery对象,再绑定
        $('.c1').click()
        $('.c1').....
    // 第二种: 获取jQuery对象,再绑定,还可以解绑,用bind,ubind $('.c1').bind('click',function(){ // 绑定 }) $('.c1').unbind('click',function(){ // 解绑 })
    // 第三种:*******有特殊功能,看示例(一开始并没有绑定事件,当点击的时候才给绑定事件) 用delegate, undelegate $('.c').delegate('a', 'click', function(){ // 绑定、委托 }) $('.c').undelegate('a', 'click', function(){ // 解绑 })
    // 第四种:上面调用的实际上都是这种 用on, off $('.c1').on('click', function(){ }) $('.c1').off('click', function(){ })

      

    • 示例:添加内容,并自动绑定事件
      <body>
          <input id="t1" type="text" />
          <input id="a1" type="button" value="添加" />
          <ul id="u1">
              <li>1</li>
              <li>2</li>
          </ul>
      <script src="jquery-1.12.4.js"></script>
          <script>
              $('#a1').click(function () {
                  var v = $('#t1').val();
                  var temp = "<li>" + v + "</li>";
                  $('#u1').append(temp);
              });
      //      第三种绑定方式
              $('ul').delegate('li','click',function () {
                  var v = $(this).text();
                  alert(v);
              })
      //      第一种绑定方式
      //        $('ul li').click(function () {
      //            var v = $(this).text();
      //            alert(v);
      //        })
      //      第二种绑定方式
      //        $('ul li').bind('click',function () {
      //            var v = $(this).text();
      //            alert(v);
      //        })
      //      第四种绑定方式
      //        $('ul li').on('click', function () {
      //            var v = $(this).text();
      //            alert(v);
      //        })
          </script>
      </body>
    

      

    7.2、JQuery事件之阻止事件发生 及示例:表单验证

    a标签是不是默认有个onclick事件,如果再给绑定一个onclick事件会怎么样?

    默认:先执行绑定事件,在执行a标签的默认事件。

    阻止事件发生
        return false
    # 当页面框架加载完成之后,自动执行
    $(function(){
        $(...)
    })
    

      

    示例:

    <body>
        <!--Dom方式:onclick里需要加return-->
        <a onclick="return ClickOn()"  href="http://www.oldboyedu.com">走你1</a>
        <!--jQuery方式:-->
        <a id="i1" href="http://www.oldboyedu.com">走你2</a>
        <script src="jquery-1.12.4.js"></script>
        <script>
            // Dom方式:
            function ClickOn() {
                alert(123);
                return true;  // true:执行后面操作,dom绑定里需要加return
            }
            // jQuery方式:
            $('#i1').click(function () {
                alert(456);
                return false;  // false:不执行后面操作
            })
        </script>
    </body>
    

      

    • 示例:表单验证
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .error{
                color: red;
            }
        </style>
    </head>
    <body>
        <!--功能:输入值:运行提交;未输入:不允许提交-->
        <form id="f1" action="s5.html" method="POST">
            <div><input name="n1" tex = "用户名" type="text" /></div>
            <div><input name="n2" tex = "密码" type="password" /></div>
            <div><input name="n3" tex = "邮箱" type="text" /></div>
            <div><input name="n4" tex = "端口" type="text" /></div>
            <div><input name="n5" tex = "IP" type="text" /></div>
    
            <input type="submit" value="提交" />
            <!--<img src="...">-->
        </form>
        <script src="jquery-1.12.4.js"></script>
        <script>
    //        // 当页面框架加载完毕后,自动执行,比如加载图片,框加载后,图片还没加载,函数就执行了
    //        $(function(){
    //
    //        });
            $(function(){
                // 当页面所有元素完全加载完毕后,执行
                $(':submit').click(function () {
                    $('.error').remove();  // 先清空错误样式
                    var flag = true;  // 创建局部变量
                    $('#f1').find('input[type="text"],input[type="password"]').each(function () {
                        var v = $(this).val();
                        var n = $(this).attr('tex');
                        if(v.length <= 0){
                            flag = false;
                            var tag = document.createElement('span');
                            tag.className = "error";
                            tag.innerHTML = n + "必填";
                            $(this).after(tag);
                            // return false;  // 加上false后,第一个不合法,后面不通过
                        }
                    });
                    return flag;
                });
            });
    //        $(':submit').click(function () {
    //            var v = $(this).prev().val();
    //            if(v.length > 0){
    //                return true;
    //            }else{
    //                alert('请输入内容');
    //                return false
    //            }
    //        })
        </script>
    </body>
    </html>
    

      

    五、jQuery 扩展

    如果想自定义jQuery功能,可以如下定义:

    • $.extend $.方法
    • $.fn.extend $(..).方法
    <body>
        <script src="jquery-1.12.4.js"></script>
        <script>
            var v = $.wangsen();
            alert(v);
    //        $('#i1').css()
    //        $.ajax()
            // 第二种写法:.fn.extend
            $.fn.extend({
                "name1": function () {
                    return 'fgf00';
                }
            });
            var v2 = $('#i1').hanyang();
            alert(v);
            // 第一种写法:.extend
            $.extend({
                'name2': function () {
                    return 'fgf01';
                }
            });
            var v1 = $.wangsen();
            alert(v);
        </script>
    </body>
    

      

    如果引入第三方jQuery扩展,全局变量、扩展名,可能重复,因此使用还是都定义自执行函数.

    (function (arg) {
        var status = 1;
        arg.extend({
           'name': function () {
               return 'fgf';
           }
        });
    })(jQuery);
    

      

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 字符串逆序
    Java实现 蓝桥杯VIP 算法训练 字符串逆序
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Qt 自定义model实现文件系统的文件名排序
  • 原文地址:https://www.cnblogs.com/zoe233/p/8027596.html
Copyright © 2011-2022 走看看