zoukankan      html  css  js  c++  java
  • jQuery学习

    一、jQuery基本语法

            <script type="text/javascript">
                // js的写法,在页面中只能出现一次,如果出现多个,以最后一个为主
                window.onload = function(){
                    
                }
                
                //jQuery的写法  (document).ready可以省略,可以写多个
                $(function(){
                    /*语法:jQuery("选择器").方法
                    jQuery可以和$互换
                    addClass()添加类属性
                    $将DOM转为jQuery对象
                    */
                   $("#img").click(function(){
                       //$(this).css("border","10px solid red");
                       //toggleClass()如果存在(不存在)就删除(添加)一个类。
                       $(this).toggleClass("img");
                   });
                  
                });
            </script>

    实现隐藏和显示的效果

                    //实现h1轮流点击隐藏和显示的效果
                    $("h1").toggle(
                        //轮流点击    
                        function(){
                            $(this).css("background-color","#00FFFF")
                            $("ul").css("display","block");
                        },
                        
                        function(){
                            $(this).css("background-color","white")
                            $("ul").css("display","none");
                        },
                    );

    二、选择器

    $(document).ready(function(){
        
        //全局选择器*
        $("*").css({
            "margin":"0px",
            "padding":"0px"
        });
        
        //标签选择器$("标签名")
        $("li").css("list-style","none")
        //多个属性
        $("li").css({
            "font-size":"30px",
            "background-color":"pink",
            "margin-top":"5px"
        });
        
        //id选择器$("#id名")
        $("#liid").addClass("litest");
        
        //类选择器$(".类名")
        $(".litest").css({
            "width":"200px",
            "color":"white"
        });
        
        //并集选择器
        $(".litest,#liid").click(function(){
            alert("并集选择器")
        });
        
        //交集选择器
        $("li.litest").css("border-radius","5px");
    
    
        
        //----------------层级选择器
        //后代选择器(多个选择器之间用空格隔开)
        $("ul li").css("color","white");
        
        //子类选择器 >,只能到子类,后代不行
        $("ul>li").css("color","red");
        
        //相邻元素选择器+,匹配所有紧接在 prev 元素后的 next 元素
        //后面的一个
        $("#liid+span").css("display","block");
    
        //同辈元素选择器~,匹配 prev 元素之后的所有 siblings 元素
        $("#liid~span").css("display","block");
        
        
    
        //-------------------属性选择器
        //属性选择器[属性]:选中所有id,匹配给定的属性是某个特定值的元素
        $("[id]").css("letter-spacing","20px");
        
        //属性选择器[属性=值]:匹配给定的属性是某个特定值的元素
        $("[id=id02]").css("background-image","url(../img/img01.jpg)");
        
    
        
        //-------------------基本选择器
        //获取第一个元素
        $("dt:first").html("123");
        $("dt:last").css("background-color","red");
        $("dd:first").css("color","blue");
        
        //除了第一个以外的,去除所有与给定选择器匹配的元素
        $("dt:not(:first)").css("color","aqua");
        
        //:even,匹配所有索引值为偶数的元素,从0开始
        //实现表格隔行换色
        $("td:even").css("background-color","aqua");
        $("td:odd").css("background-color","red");
        
        //:eq(index) 匹配一个给定索引值的元素
        $("td").css("width","40px");
        $("td:eq(1)").text("你好");
        
        //:gt(index)匹配所有大于给定索引值的元素
        //:lt(index)小于(开区间)
        $("td:gt(5)").text("你好");
       
    
            //匹配表单元素:input
        $(":input").css("width","300px");
        //匹配所有文本框
        $(":text,:password").css("width","300px");
        $(":radio").css("width","30px");
        $(":checkbox").css("width","10px");
        $("select").css("width","100px");
        $(":submit").css("width","50px");
           
        
           //表单对象
           //:enabled、:disabled、:checked、:selected
        
    });        

    三、事件

    $(document).ready(function() {
    
        //获取焦点事件focus()
        $(":text").focus(function() {
            $(this).css("border", "1px solid red");
        });
    
        //失去焦点事件,获取输入框中的文本
        //val()用于获取值和设置值
        $("[type=text]").blur(function() {
            //alert($(this).val());
            $(this).next().html("用户名在8-16位之间").css("color", "red");
        });
    
        //change()当元素的值发生改变时,会发生 change 事件。适用于textarea和select
        $("[name=info]").change(function() {
            var t = $(this).val();
            //alert(t);
        });
    
        //单击:click(),双击:dblclick()
    
        //键盘事件:keydown,keypress,keyup
        $(document).keydown(function(event) {
            //alert("键盘码:" + event.keyCode);
        });
    
        $(document).keyup(function(event) {
            //window.close();
        });
    
        //mouseover()鼠标指针在指定的元素中移动时发生
        //mousedown、move、out
        $("#text").mouseover(function() {
            $(this).css("width", "300px");
        });
        $("#text").mouseout(function() {
            $(this).css("width", "163px");
        });
        $("#text").mousedown(function() {
            $(this).val("你好,再见");
        });
    
        //滚动条事件
        $(document).scroll(function() {
            let h = $(this).scrollTop();
            //offset()获取元素在当前视口的偏移量
            var top = $("form").offset().top;
            $("form").offset({
                top: h + 100,
                left: 100,
            });
        });
    
        //on()同时绑定多个事件;bind()
        $("span").on("click", test);
    
        //移除所有on绑定的事件
        $("span").off();
    
        //bind(),同时绑定多个函数
        $(".btn").bind({
            click: function() {
                alert("鼠标点击");
            },
            mouseover: function() {
                alert("鼠标移入事件");
            }
        });
    
    });
    
    function test() {
        //remove()从DOM中删除
        $(this).hide()
        //hide()隐藏
        //$(this).hide()
    }

    四、动画效果

        //动画效果
        //show()、hide()显示、隐藏
        //toggle()用于响应被选元素的轮流点击事件
        
        //滑动
        //slideDown()上而下
        //slideUp()自下而上
        //slideToggle轮流
        
        //淡入淡出
        //fadeIn、fadeOut
        //fadeTo只改变透明度,不改变高度
        //fadeToggle轮流
        
        //自定义动画
        //animate({},{})指定动画形式及结果样式属性对象。
        //这个对象中每个属性都表示一个可以变化的样式属性(如“height”、“top”或“opacity”)。
        //注意:所有指定的属性必须用骆驼形式,比如用marginLeft代替margin-left.
        
        //stop()停止所有在指定元素上正在运行的动画。

    五、文档处理

    $(function(){
        var son = "<img src='../img/21.jpg' />";
        var son1 = "<img src='../img/22.jpg' />";
        //append()在匹配元素的子元素末尾追加元素(和子元素成为兄弟)
        $("#con").append(son);
        //效果和上面相同
        $(son).appendTo("#con");
        
        //prepend()向每个匹配的元素内部前置内容。和append()相反
        $("#con").prepend(son);
        $(son).prependTo("#con");
        
        //after()在每个匹配的元素之后插入内容。(和当前元素成为兄弟)
        //before()之前插入
        $("#con").after(son1);
        $("#con").before(son1);
        //insertAfter()和之前相反
        
        
        //replaceWith()将所有匹配的元素替换成指定的HTML或DOM元素。
        //replaceAll()用匹配的元素替换掉所有 selector匹配到的元素。
        //$(son).replaceAll("div")
        
        
        //empty()删除匹配的元素集合中所有的子节点。
        //$("#con").empty()
        
        //remove()从DOM中删除所有匹配的元素。(只删除自己)
        
        //detach(),值删除元素,里面的数据还在。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。
        
        
        //clone(true|false)
        var clone = $("#con").clone(true);
        $("#son").append(clone)
    
    
        
    })

    筛选、过滤

                $(function(){
                    $(".p").last().text("最后一个");
              //除了id=p的元素设置css $(
    ".p").not($("[id=p]")).css("color","red"); //index获取匹配元素在集合中的索引值(从0开始) var index = $("p").index($("#p")); //alert(index) })

    六、案例:使用jQuery实现表格的动态增加、删除、修改

    效果图:


    代码:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>表格的增删改</title>
            <script src="../js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
            <script src="../js/table.js" type="text/javascript" charset="utf-8"></script>
            <style type="text/css">
                *{
                    margin: 0px;
                    padding: 0px;
                }
                table{
                    width: 70%;
                    border-collapse: collapse;
                    border: 1px solid #CCCCCC;
                }
                
                td,th{
                    border-bottom: 1px solid #CCCCCC;
                    height: 30px;
                    text-align: center;
                    border-right: 1px solid #CCCCCC;
                }
                span{
                    border: 1px solid #CCCCCC;
                    padding: 2px 5px;
                    cursor: pointer;
                }
                input{
                    text-align: center;
                }
                /* 下标从1开始 */
                tr:nth-child(even){
                    background-color: aqua;
                }
            </style>
        </head>
        <body>
            <table>
                <tr>
                    <th>名称</th>
                    <th>单价</th>
                    <th>数量</th>
                    <th>小计</th>
                    <th>操作</th>
                </tr>
                <tr>
                    <td>老奶洋芋盖饭</td>
                    <td>100</td>
                    <td>
                        <span>+</span>
                        <input type="number" value="1" />
                        <span>-</span>
                    </td>
                    <td>100</td>
                    <td>
                        <input type="button" id="add" class="btn" value="增加" />
                        <input type="button" id="del" class="btn" value="删除" />
                        <input type="button" id="edit" class="btn" value="编辑" />
                    </td>
                </tr>
            </table>
        </body>
    </html>

    js代码

    $(function() {
        $("th").css("background-color", "greenyellow");
    
        //绑定事件
        $(".btn").mousedown(function() {
    
            var btnVal = $(this).val();
            var thistr = $(this).parent().parent();
    
            if (btnVal == "增加") {
                //克隆并追加
                var trval = thistr.clone(true);
                $("table").append(trval);
    
            } else if (btnVal == "删除") {
                //如果是最后一行了就不能再删除
                if ($("tr").length > 2) {
                    thistr.remove();
                } else {
                    var f = confirm("已经是最后一个了,是否确定删除?");
                    if (f == true) {
                        thistr.remove();
                    }
                }
    
            } else if (btnVal == "编辑") {
                //编辑
                //获取按钮所造td前面的所有同辈元素
                //var tds = $(this).parent().prevAll();
                var tds1 = $(this).parent().siblings();
    
                //获取行中的单元格
                var tds = thistr.children();
                //将编辑之前的数据保存起来
                //var name = tds[0].innerHTML;
                //var price = tds[1].innerHTML;
                for (var i = 0; i < 2; i++) {
                    var tdtext = tds.eq(i).text();
                    tds.eq(i).html("");
                    //tds.eq(i).append("<input value="+tdtext+" />");
                    //或者下面的方法
    
                    //定义input赋值
                    var input = document.createElement("input");
                    $(input).val(tdtext);
                    tds.eq(i).append(input);
    
                }
                $(this).val("确定");
    
            } else if ($(this).val() == "确定") {
    
                //var tds = thistr.children();
                var tds = $(this).parent().prevAll(":gt(1)");
    
                for (var j = 0; j < 2; j++) {
                    var tdtext = tds.eq(j).children("input").val();
                    tds.eq(j).text(tdtext);
                }
                $(this).val("编辑");
            }
        });
    
        //为+-绑定事件
        $("span").mousedown(function() {
            //获得+-
            var jiajian = $(this).parent().children("span");
            var input = $(this).parent().children("input");
            var v = input.val();
            var count = v;
            for (var i = 0; i < jiajian.length; i++) {
                if (jiajian[i].innerHTML == "+") {
                    count++;
                    //alert(count)
                } else if (jiajian[i].innerHTML == "-") {
                    count--;
                }
            }
            console.log(count)
            input.innerText = "";
            input.innerText = count;
            
        });
    
    
    });
  • 相关阅读:
    使用积分图像统计元素
    compareHist
    均值平移算法
    课后作业-阅读任务-阅读提问-1
    《对软件工程课程的期望》
    自我介绍
    作业
    结对-结对编项目作业名称-需求分析
    对软件工程课程的期望
    自我介绍
  • 原文地址:https://www.cnblogs.com/zhangzimuzjq/p/11901794.html
Copyright © 2011-2022 走看看