javascript day08 jQuery操作DOM,事件处理,删除节点,遍历操作

目录

1. jQuery操作DOM    

    1.基本操作

    2.属性操作

    3.样式操作

    4.遍历节点

    5.创建元素 & 插入元素

2.jQuery中的事件处理

    1.DOM加载完成后的操作

    2. jQuery事件绑定

3.jQuery删除节点

4.jQuery 遍历操作

5.jQuery动画

 6.jQuery插件  

练习


 

1. jQuery操作DOM
    

    1.基本操作

        1.html()

            作用:获取或设置jQuery对象的HTML内容,等同于innerHTML
            ex:
                var $div = $("#main");
                console.log($div.html());
                $div.html("动态设置的文本");

        2.text()

            作用:纯文本内容
            等同于:innerText

        3.val()

            作用:获取或设置表单控件的value值
            等同于:value

        <input type="text" id="uname">
        <button onclick="btnShow()">显示</button>
        <div id="uname-show"></div>
        <script src="jquery-1.11.3.js"></script>
        <script>        
            function btnShow(){
                $("#uname-show").html("<h1>"+$("#uname").val()+"<h1>");
        }
        </script>

    2.属性操作

        1.attr()

            作用:读取或设置jQuery对象的属性值
            ex:
                1.$obj.attr("id");
                    获取$obj对象的id属性值
                2.$obj.attr("id","container")
                    设置$obj对象的id属性值为container

        2.removeAttr("attrName")

            作用:删除jquery对象的attrName属性
            ex:
                $obj.removrAttr("class");

    3.样式操作

        1.attr("class","className")

            使用attr()绑定className值到jq对象的class属性上

        2.addClass("className")

            作用:追加className选择器到jq对象的class属性后
            返回值:jq对象
            <div id="obj"></div>
            var $obj = $("#obj")       

                $obj = $obj.addClass("c1");
                结果:<div id="obj" class="c1"></div>

                $obj = $obj.addClass("c2");
                结果:<div id="obj" class="c1 c2"></div>

            以上两个操作,可以简化为:

            $obj.addClass("c1").addClass("c2");
            (连缀调用)
            $obj.addClass("c1").addClass("c2").html();
            $("#uname-show").addClass("red").addClass("orangeBack").html("<h1>"+$("#uname").val()+"<h1>");

        3.removeClass("className")

            作用:将className属性值从class属性中移除

        4.removeClass()

            作用:清空class属性值

        5.toggleClass("className")

            切换样式:
                元素如果具备className属性值,则删除
                元素如果没有className属性值,则添加

        6.css("css属性名")

            作用:获取对应css属性的值
            ex:
                $obj.css("css属性名")
                作用:获取$obj对象的CSS属性值

        7.css("css属性名","css属性值")

            作用:为元素设置css属性值

        8.css(JSON对象)

            JSON对象 类似于 PYTHON中字典的写法
            ex:
                $obj.css({
                    "color":"red",
                    "background-color":"orange"
                })

    4.遍历节点

        1.children() / children(selector)

            作用:获取jq对象的所有子元素或带有指定选择器的子元素
            注意:只考虑子代元素,不考虑后代元素

        2.next() / next(selector)

            作用:获取jq对象的下一个兄弟元素/满足selector的下一个兄弟元素

        3.prev() / prev(selector)

            作用:获取jq的上一个兄弟元素/满足selector的上一个兄弟元素

        4.siblings() / siblings(selector)

            作用:获jq对象的所有兄弟节点/满足selector的所有兄弟

        5.find(selector)

            作用:获取满足selector选择器的所有后代元素

        6.parent()

            作用:查找jq对象的父元素

    5.创建元素 & 插入元素

        1.创建元素

            语法:var $obj = $("创建的内容");
            注意:创建的内容必须是标记
            ex:
                1.创建一对div
                    var $div = $("<div id="xxx">xxxx</div>");
                2.创建一对button
                    var $btn = $("<button></button>");
                    $btn.attr("id","btnDelete");
                    $btn.html("删除");

        2.插入元素

            1.内部插入
                1.$obj.append($new);
                    将$new元素插入到$obj中最后一个子元素位置处
                2.$obj.prepend($new);
                    将new元素插入到$obj中第一个子元素的位置处

            2.外部插入
                作为兄弟元素插入到网页中
                1.$obj.after($new);
                    将$new作为$obj的下一个兄弟节点插入到网页中
                2.$obj.before($new);
                    将$new作为$obj的上一个兄弟节点插入到网页中

2.jQuery中的事件处理

    1.DOM加载完成后的操作

        1.$(document).ready(function){
                //DOM树加载完毕后要执行的操作
                //相当于是页面初始化
            });
        2.$().ready(function(){
                //效果同上
            });
        3.$(function(){
                //效果同上
            });


        // DOM树加载完毕时就调用的内容
        // 适合做:网页初始化的操作
        $(function(){
            $("#uname").val("请输入用户名");
        });


    2. jQuery事件绑定

        1.方式1
            $obj.bind("事件名称",事件处理函数);
            ex:
                $obj.bind("click",function(){

                });
        2.方式2
            $obj.事件名称(function(){

            });
            ex:
                $obj.click(function(){
                    xxxx
                });
        常用事件

            // fn 是 function()
            $obj.click(fn);
            $obj.mouseover(fn);
            $obj.mousemove(fn);
            $obj.mouseout(fn);
            $obj.keydown(fn);
            $obj.keypress(fn);
            $obj.keyup(fn);
            $obj.focus(fn);
            $obj.blur(fn);
            $obj.change(fn);
            $obj.submit(fn);

    3.事件中的this

        在jquery事件中,this表示的就是触发当前事件的DOM对象

    4.事件对象 - event

        在绑定事件的时候,允许传递 event 参数来表示事件对象

        1.$obj.bind("事件名称",function(event){
            event 表示的就是事件对象    
          })

        2.$obj.事件名称(function(event){
            event 表示的就是事件对象    
        });
        event的使用方式与原生JS事件中的事件对象一致
        1.事件源
            event.target
        2.鼠标事件
            event.offsetX:在元素上的横坐标
            event.offsetY:在元素上的纵坐标
        3.键盘事件
            event.which:键位码或ASCII码

    5.激发事件操作

        $obj.事件名称();
        ex:
            $obj.click();//触发$obj的click事件
            $obj.click(function(){}),//为$obj绑定click事件

3.jQuery删除节点

    1.remove()

        语法:$obj.remove();
        作用:删除$obj元素

    2.remove("selector")

        语法:$obj.remove("selector");
        作用:将满足selector选择器的元素删除

    3.empty()

        语法:$obj.empty();
        作用:清空 $obj 内容

4.jQuery 遍历操作

    方法:each()
    1.循环遍历jQuery数组
        $obj.each(function(i,obj){
            i:循环出来的元素的下标
            obj:循环出来的元素(DOM元素)
        });
    2.循环遍历JS数组(原生)
        1.将原生数组通过$()转换成jQuery数组
        2.
            $.each(原生数组,function(i,obj){
                i:遍历出来的下标
                obj:遍历出来的元素
            });

5.jQuery动画

    1.基本显示/隐藏

        $obj.show() / $obj.show(执行时长);
        $obj.hide() / $obj.hide(执行时长);

    2.滑动式显示 / 隐藏

        $obj.slideDown() / $obj.slideDown(执行时长);
        $obj.slideUp() / $obj.slideUp(执行时长);

    3.淡入淡出式显示/隐藏

        $obj.fadeIn() / $obj.fadeIn(执行时长);
        $obj.fadeOut() / $obj.fadeOut(执行时长);

 6.jQuery插件  

     1.下载插件并引入(jquery,插件文件,css文件)
     2.结合当前网页修改css
     3.去插件中修改数据(替换图片/图片名称)

练习https://blog.csdn.net/zh__quan/article/details/81913591

猜你喜欢

转载自blog.csdn.net/zh__quan/article/details/81913676