• jquery练习笔记


    <!DOCTYPE html>
    
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style>
            #pannel {
                position:relative;
                width:100px;
                height:100px;
                border:1px solid #0050d0;
                background:#96e555;
                cursor:pointer;
            }
        </style>
        <script type="text/javascript" src="../Packages/jQuery.1.8.3/jquery-1.8.3.min.js"></script>
        <script type="text/javascript">
            //选择器总结
            //jquery中选择器编写均可以以元素名为开头  后跟id,class或则属性选择器来组成。
            //$("input[name$='3']")  input为元素名,[]中包含属性name,name的值以3结尾
            //$("input#none5")                                              不能有空格
            //$("input.cls1")                                               不能有空格
            //$("input:first")
            //$("input[class][name^='none']") 复合选择器,返回含有class属性且name属性的值以none值开头
            //$("input.cls1[name^='none']") 返回class为.cls1且name属性的值以none值开头
            //form所有后代input元素
            var Init1 = function () {
                $("form input").each(function () {
                    alert($(this).attr("name"));
                })
            };
            //form所有input子元素
            var Init2 = function () {
                $("form > input").each(function () {
                    alert($(this).attr("name"));
                })
            };
            //紧接form后的所有input同辈元素
            var Init3 = function () {
                $("form ~ input").each(function () {
                    alert($(this).attr("name"));
                })
    
                //$("input[name='none2'] ~ input").each(function () {
                //    alert($(this).attr("name"));
                //})
            };
            //紧接form的第一个input同辈元素
            var Init4 = function () {
                $("form + input").each(function () {
                    alert($(this).attr("name"));
                })
            };
            //返回属性name包含none的所有input元素
            var Init5 = function () {
                $("input[name*='none']").each(function () {
                    alert($(this).attr("name"));
                })
            }
            //返回class为cls1的所有input元素
            var Init6 = function () {
                //alert($("input.cls1").attr("name"));
                $("input.cls1").each(function () {
                    alert($(this).attr("name"));
                })
            }
            //返回id为none5的所有input元素
            var Init7 = function () {
                //alert($("input.cls1").attr("name"));
                $("input#none5").each(function () {
                    alert($(this).attr("name"));
                })
            }
            //返回第一个input元素
            var Init8 = function () {
                $("input:first").each(function () {
                    alert($(this).attr("name"));
                })
            }
    
            //返回第一个input元素
            var Init9 = function () {
                //$("input[class][name^='none']").each(function () {
                //    alert($(this).attr("name"));
                //})
                $("input.cls1[name^='none']").each(function () {
                    alert($(this).attr("name"));
                })
            }
            //$(Init9);
    
            var GetDom = function (id) {
                //alert($("#none7").val());
                var $id = $("#" + id);
                alert($id);
                alert($id.get(0));
                alert($id.val());
            }
            //此处如果直接调用GetDom("none7"),$id.val()值为undefined
            //因为$()时,dom元素只是绘制完成,但未加载完成
            //$(GetDom("none7"));
    
            //jquery对象与dom对象间的转换
            //jquery转dom var $none7=$("#none7");var none7=$none7[0];或 var none7=$none7.get(0);
            //dom转jquery var none7=document.getElementById("none7"); var $none7=$(none7);
    
            //与$(GetDom("none7"));对应,
            //将方法调用加载到按钮点击事件上,点击可成功获取数据
            $(function () {
                $("#Button1").bind("click", function () {
                    GetDom("none7");
                });
            })
    
            $(function () {
                var $cr = $("#cr");
                $cr.click(function () {
                    if ($cr.is(":checked"))
                    {
                        alert("恭喜!请继续下一步操作");
                    }
                    else
                    {
                        alert("请阅读规章制度!");
                    }
                })
            })
    
            //让渡变量$的控制权
            //jQuery.noConflict();
            //(function ($) {
            //    $(function () {
            //        //$("#Button2").click(function () {
            //        //    alert("让渡测试");
            //        //})
            //        alert("让渡测试");
            //    });
            //})(jQuery);
    
            //判断一个元素是否存在
            //两种方式
            if ($("#none7").length > 0)
            { }
            if ($("#none7")[0])
            { }
    
            //基本选择器 #id  .class  element  *  selector1,selector2...
            //层次选择器 $(ancestor descendant)  ancestor所有后代descendant元素
            //$("parent>child")
            //$("prev+next")   等同于方法$("prev").next("next") 获取后一个元素
            //$("prev~siblings") 等同于$("prev").nextAll("siblings") 获取prev后所有兄弟元素
            //$("doc").siblings()方法是获取所有同辈元素,跟位置无关
            //过滤选择器
            
            //子元素过滤选择器nth-child(index/odd/even/equation),其中index是从1开始的。
            //eq(index),index是从0开始的
    
            //$(html) 根据传入的html标记字符串,创建一个dom对象,并将dom对象包装为jquery对象返回。
            //含创建元素、文本、属性节点
            //var $li1=$("<li>香蕉</li>");$("ul").append($li1);
    
            //插入节点
            //append() 向每个匹配的元素内追加内容
            //prepend() 向每个匹配的元素内前置内容
            //appendTo() 将所有匹配的元素追加到指定的元素内
            //prependTo()
    
            //after() 每个匹配的元素后插入内容。 <p>我爱你</p>  $('p').after('<b>你好!</b>')  结果是 <p>我爱你</p><b>你好!</b>
            //insertAfter() 将所有匹配的元素插入到指定元素后面。 <p>我爱你</p>  $('<b>你好!</b>').insertAfter('p')  结果是 <p>我爱你</p><b>你好!</b>
            //before()
            //insertBefore()
    
            //删除节点
            //remove() 将匹配的元素及其子元素一起删除,返回的是已被删除的节点引用,删除后可再次使用
            //empty() 清空元素中所有后代节点,可用于清空内容
    
            //替换节点
            //replaceWith() 将所有匹配的元素替换成指定的dom或html
            //replaceAll() 用指定dom或html替换后面括号里的元素,与replaceWith相反
            $(function () {
                //$('p').replaceWith("<strong title='你喜欢的水果'>你喜欢的水果是?</strong>");//将$('p')替换为后面的内容
                $("<strong title='你喜欢的水果'>你喜欢的水果是?</strong>").replaceAll('p');//用前面的内容替换$('p')
            })
    
            //克隆
            $(function () {
                $("ul li").click(function () {
                    //$(this).clone().appendTo($('ul'));
                    $(this).clone().appendTo('ul');//克隆点击li并追加到ul内尾
                    $(this).clone(true).appendTo('ul');//clone(true)复制元素的同时也复制元素所绑定事件
                })
            })
    
            //包裹节点
            $(function () {
                //$("strong").wrap("<b></b>");//将每个stong用<b>包裹
                //$("strong").wrapAll("<b></b>");//将strong组合并用<b>包裹,中间的元素依次提取靠后
                $("strong").wrapInner("<b></b>");//将strong子元素或内容用<b>包裹
            })
    
            //addClass()
            //removeClass()
    
            //toggle()
            //toggleClass()
            //hasClass()
    
            //css() 有单位
            //元素的高度获取  
            //css("height")获取的高度与样式设置有关,有可能为‘anto’。获取的高度包含px   $('p').css("color",red); $('p').css("fontSize","10px")采用骆驼写法,尽量用引号
            //height()方法获取的是元素实际高度,与样式设置无关。不含px单位
    
            //$('p').is(':visible') p元素是否显示
            //jquery自定义方法ready(),hover(),toggle()
            //hover(enter,leave)模拟光标悬停事件,光标移到元素上触发enter,移除触发leave
            //hover(enter,leave)是用于替换bind("mouseenter")和bind("mouseleave"),不是用于替换bind("mouseover")和bind("mouseout")
            //toggle(fn1,fn2,...,fnN)模拟鼠标连续点击事件
            //toggle()还能切换元素的可见状态。$(this).toggle();
    
            ////x = 0;
            ////y = 0;
            ////$(document).ready(function () {
            ////    $("div.over").hover(
            ////       function () { $(".over span").text(x += 1); },
            ////       function () {$(".enter span").text(y += 1);}
            ////    )
            ////});
    
            //获取事件对象
            //$(p).bind("click",function(event){});//event就是事件对象
            //event只有处理函数可以访问,当事件处理函数执行完后,就会被销毁
    
            //事件冒泡
            //停止事件冒泡 event.stopPropagation()
            //$(p).bind("click",function(event){//函数内容;event.stopPropagation();});
    
            //阻止元素的默认行为 event.preventDefault()
            //例如超链接有默认跳转事件,提交按钮会提交表单等
            //验证表单内容可用到
            //$(function () {
            //    $("#sub").bind("click", function (event) {
            //        var username = $("#username").val();
            //        if (username == "")
            //        {
            //            //处理说明
            //            //...
            //            event.preventDefault();//阻止表单提交
            //        }
            //    })
            //})
            //如果同时想对事件对象停止冒泡和阻止默认行为可适用 return false;
    
            //jquery不支持事件捕获,事件捕获是从上到下
    
            //事件对象属性
            //event.type() 获取事件类型
            //event.stopPropagation() 停止冒泡
            //event.preventDefault() 阻止默认行为
            //event.target() 获取触发事件元素  event.target.href 连接地址
            //event.relatedTarget() 获取相关元素
            //event.pageX()//event.pageY() 获取光标相对页面的x和y坐标
            //event.which() 鼠标单机事件中获取左中右键,在键盘中获取键盘的按键
            //event.metaKey() 键盘事件中获取ctrl按键
            //event.originalEvent() 指向原始的事件对象
    
            //移除事件 
            //可以为同一元素绑定多个事件,也可以为多个元素绑定同一个事件 bind()
            //unbind([type],[,data]) 移除事件绑定 
            //$('p').unbind(); //移除所有绑定
            //$('p').unbind("click");//移除click事件
            //$('p').unbind("click",fun1);//移除click的事件方法fun1
    
            //one() 使用方式和bind()一致
            //用于只绑定一次的事件,当处理函数被执行一次后将移除
    
            //模拟操作
            //$('p').trigger("click");模拟点击事件  简化写法$('p').click();
            //trigger()不仅可以触发浏览器支持的事件,也能触发自定义事件
            //trigger(type,[,data]) 第二个用于传递参数
            //bind()可以绑定自定义事件
            //$(function () {
            //    $("#sub").bind("Myclick", function (event, msg1, msg2) {
            //        alert(msg1 + msg2);
            //    })
            //    $("#sub").trigger("Myclick", ["我的自定义", "事件"]);
            //})
    
            //trigger()会触发浏览器的默认操作,如果只触发事件 不触发默认操作可用triggerHandler()
            //triggerHandler("focus") 只触发focus中的事件方法,不会获得焦点
    
            //jquery中的动画
            //$("elment").hide(); 等价于 $("elment").css("display","none");
            //jquery的动画效果应放在标准模式下,不然可能会引起动画抖动
    
            //hide()和show() 同时改变元素的高宽度和透明度
    
            //fadeIn()和fadeOut()改变元素的透明度,淡入淡出
            //fadeIn()
            //fadeOut() 在一定时间内 降低元素的透明度,直至消失
    
            //slideUp()与slideDown()改变的是元素的高度
            //slideUp() 元素由下至上缩短隐藏
            //slideDown() 元素由上至下延伸显示
    
            //自定义动画animate(params,speed,callback)
            $(function () {
                $(this).css("opacity", 0.5);//设置不透明度
                $("#pannel").bind("click", function () {
                    //$(this).animate({ left: "500px" }, 3000);//向右移动500px
                    //$(this).animate({ left: "+=500px" }, 3000);//+=表示在当前位置累加
                    //$(this).animate({ left: "500px",height:"200px" }, 3000);//+=表示在当前位置累加
                    //动画先后顺序,写成多个animate即可
                    //$(this).animate({ left: "500px", height: "200px", opacity: 1 }, 3000)//向右逸动500的同时高度逐渐变为200 并设置不透明度为100%
                    //       .animate({ top: "200px",  "200px" }, 3000)
                    //       .fadeOut("slow");
    
                    //执行一系列动作后,改变css样式,写字最后一个动画的回调方法中.
                    //这样就将css加入到了动画的队列中
                    $(this).animate({ left: "500px", height: "200px", opacity: 1 }, 3000)//向右逸动500的同时高度逐渐变为200 并设置不透明度为100%
                          .animate({ top: "200px",  "200px" }, 3000, function () {
                              $(this).css("border", "5px solid blue");
                          });
                })
                //stop([clealQuene][,gotoEnd])
                //clealQuene设为true,把当前元素尚未执行完的动画序列清空
                //gotoEnd设为true,让正在执行的动画直接到达结束时的状态
                $("#pannel").hover(function () {
                    $(this).stop()//停止当前动画,进入下一个动画序列
                    .animate({ left: "500px", height: "200px", opacity: 1 }, 3000);
                },
                function () {
                    $(this).stop(true)
                    .animate({ top: "200px",  "200px" }, 3000);
                }
                )
                //判断元素是否处于动画状态
                //$("#pannel").is(":animated")
    
                //其他动画方法
                //toggle()切换元素的可见状态
                //slideToggle()通过高度切换元素的可见性
                //fadeTo() 设置匹配元素的不透明度,高宽度不会发生变化
    
                //Javascript Math ceil()、floor()、round()三个函数的区别
                //Math.ceil(12.2) 向上取整
                //Math.floor(12.2) 向下取整
                //Math.round(12.2) 四舍五入
    
                //scrollTop:"50px" 控制滚动条
    
                //表单验证
                //表单中必填元素的验证,采用blur(function(){}).光标移除时触发
                //要做到即时验证,可为表单元素绑定keyup()和focus()事件
                $("form :input").blur(function () {
                    //失去焦点 验证处理
                    //多条件分支判断
                }).keyup(function () {//键盘松开时触发
                    $(this).triggerHandler("blur");
                }).focus(function () {//获取焦点时触发
                    $(this).triggerHandler("blur");//triggerHandler()只触发元素事件,不触发元素默认事件方法
                })
            })
    
            //filter() 筛选出与指定表达式匹配的元素集合
            //$('p').filter('.selected');//筛选出含有selected样式的p元素
    
            //has() 保留包含特定后代的元素
            //<ul>
            //  <li>list item 1</li>
            //  <li>list item 2
            //    <ul>
            //      <li>list item 2-a</li>
            //      <li>list item 2-b</li>
            //    </ul>
            //  </li>
            //  <li>list item 3</li>
            //  <li>list item 4</li>
            //</ul>
            //jQuery 代码: $('li').has('ul').css('background-color', 'red');//将包含ul的li背景色改为红色
    
            //hasClass() 检查当前元素是否含有特定的类
    
            //$(this)["removeClass"]("selected") 等价于 $(this).removeClass("selected")
    
            //var thisEle=$(""#paras).css("font-size");//获取id为paras的字体大小
            //var textFontSize=parseFloat(thisEle,10);//去掉字体的单位
            //var unit=thisEle.slice(-2)//获取字体的单位
    
            //index() 搜索匹配元素,并返回相应元素的索引值,从0开始 
    
            //jquery的cookie插件运用
    
            //jquery的ajax. load(url [,data] [,callback])
            //$("#divT").load("test.html")
            //$("#divT").load("test.html .para")//加载test页面中样式为para的元素至divT中。para为URL参数
            //load()中 若无data参数采用get方式传输,若有data参数采用post方式传输
            //load() 回调函数callback 请求完成后,无论是否成功都会被调用
            //load() 回调函数callback有三个参数 
            //$("#divT").load("test.html", function (responseText,textStatus,XMLHttpRequest) {
            //    //responseText 请求返回的内容
            //    //textStatus 请求状态:success,erro,notmodified,timeout4种
            //    //XMLHttpRequest XMLHttpRequest对象
            //})
    
            //$.get(url [,data] [,callback] [,type])
            //callback在请求成功后才会触发与load()不一样
            //type 请求返回内容的格式
    
            //$(selector).serialize()
            //
            //serialize() 通过序列化表单值,创建 URL 编码文本字符串。包含自动编码
            //serializeArray() 将dom元素序列化后,返回json格式
            //表单元素必须使用name属性,才会被序列化到字符串中
            //$.param() 用于对一个数组或对象按key/value进行序列化
            //var obj = { a: 1, b: 2, c: 3 };
            //var objstr = $.param(obj);
            //alert(objstr);//a=1&b=2&c=3
    
            //ajax全局事件方法。只要ajax请求发生,就会触发
            //ajaxStart(callback) ajax请求开始时触发
            //ajaxStop(callback) ajax请求结束时触发
            //ajaxComplete(callback) 完成时
            //ajaxError(callback) 发生错误时执行的函数,捕捉的错误最后一个参数传递
            //ajaxSend(callback) 请求发送前执行
            //ajaxSuccess(callback) 请求成功时触发
    
            //ajaxStart(callback)示例 loading为div 内容为加载中...
            //$("#loading").ajaxStart(function () {
            //    $(this).show();
            //});
            //$("#loading").ajaxStop(function () {
            //    $(this).hide();
            //})
            //使某个ajax请求不受全局方法影响。可将global设置为false
            //$.ajax({
            //    url: "test.html",
            //    global:false //不触发全局事件
            //})
    
            //html lable的for属性规定与那个表单元素绑定.
            //for="element_id"  element_id为label 要绑定的元素的 id。
            //当点击lable(male或female),绑定的单选按钮被选中
            //<form>
            //  <label for="male">Male</label>
            //  <input type="radio" name="sex" id="male" />
            //  <br />
            //  <label for="female">Female</label>
            //  <input type="radio" name="sex" id="female" />
            //</form>
    
            //可以运用验证插件,cookie插件
    
            //jQuery.extend() 可以用传入的参数覆盖默认值
            //jquery的插件this是指jquery对象
            //封装jquery对象方法的插件
            ; (function ($) {
                $.fn.extend({
                    "color": function (value) { },
                    "border": function (value) { },
                    "backgroud": function (value) { }
                })
            })(jQuery)
            
            //封装全局函数插件
            ; (function ($) {
                $.extend({
                    ltrim: function (text) {
                        return (text || "").replace(/^s+/g, "");
                        //(text||"")用于防止传入尽量的text这个字符串变量处于未定义状态
                        //如果text为undefined,则返回"" 否则返回text
                    },
                    rtrim: function (text) {
                        return (text || "").replace(/s+$/g, "");
                    }
                });
            })(jQuery);
            $("#trimTest").val(
                jQuery.trim("      text    ") + "
    " +
                jQuery.ltrim("      text    ") + "
    " +
                jQuery.rtrim("      text    ")//自定义全局函数插件的使用
                );
            </script>
    </head>
    <body>
        <input name="none2" />
        <form>
            <label>Name:</label> 
            <input name="name" />
            <fieldset>
                <label>Newsletter:</label> 
                <input name="newsletter" />
            </fieldset>
        </form>
        <input class="cls1" name="none" />
        <input class="cls1" name="none5" />
        <input id="none6" class="cls1" name="none6" />
        <input name="none3" />
        <input id="none7" type="text" value="none7" name="none7"/>
        <input id="Button1" type="button" value="button" /><br />
        <input type="checkbox" id="cr" /><label for="cr" >我已阅读制度</label>
        <input id="Button2" type="button" value="button" /><br />
        <ul>
            <li>菠萝</li>
            <li>雪梨</li>
            <li>苹果</li>
            <li>香蕉</li>
        </ul>
        <p title="你喜欢的水果"><strong>你喜欢的水果是?</strong></p>
            <input name="none8" value="dddd" />
        <strong title='你喜欢的水果'>你喜欢的水果是?</strong>
        <div>分隔</div>
        <strong title='你喜欢的水果'>你喜欢的水果是?</strong>
    
        <div id="pannel"></div>
    </body>
    </html>
  • 相关阅读:
    winform中主窗体可以实现拖动代码
    winform中自定义窗体启动位置
    winform中启动登陆窗体,登陆成功后登陆窗体自动销毁
    winform中隐藏窗体边框
    作业2
    画图
    作业
    day01
    java.String中的方法
    网站的内链反链黑链
  • 原文地址:https://www.cnblogs.com/senyier/p/3732446.html
Copyright © 2020-2023  润新知