JavaScript & JQuery详解及举例

 

 

JavaScript对象的定义和使用

//1.使用原始的方式创建对象
        var obj = new Object();
        obj.name = "zhangsan"; //为obj对象添加属性
        obj.age = 20;
        obj.say = function(){ //添加功能(函数/方法)
            console.log(this.name,":",this.age);
        }
//2.使用工厂模式创建对象
        function createObject(name,age){
            var obj = new Object();
            obj.name = name; //为obj对象添加属性
            obj.age = age;
            obj.say = function(){ //添加功能(函数/方法)
                console.log(this.name,":",this.age);
            }
            return obj;
        }
//3.使用自定义构造函数创建对象
        function Stu(name,age){
            this.name = name;
            this.age = age;
            this.say = function(){
                console.log(this.name,":",this.age);
            }
        }
//4.直接创建自定义对象
        var ob = {name:"qq",age:26};
        console.log(ob.name);
        console.log(ob.age);
//判定对象是否是某一个类
       console.log(s1 instanceof Stu);

 JavaScript内置对象-Array数组

<script>
        //内置对象--Array数组
        var a1 = new Array(); //定义一个空数组
        var a2 = new Array(10); //定义一个长度为10数组(值:undefined)
        var a3 = new Array(10,20,30); //定义一个指定数值的数组

        console.log(a1.length);
        console.log(a2.length);
        console.log(a3.length);

        var a4 = [10,20,30,40,50]; //快捷定义数组

        //数组的遍历
        for(var i=0; i<a4.length;i++){
            console.log(i,"=>",a4[i]);
        }

        for(var i=a4.length-1; i>=0;i--){
            console.log(i,"=>",a4[i]);
        }

        for(var i in a4){
            console.log(i,"=>",a4[i]);
        }

        a4.forEach(function(v){
            console.log(v);
        });
        
        //数组的方法:
        console.log(a4.toString());
        console.log(a4.join(":"));
        var aa = [1,2,3];
        console.log(aa.concat(4,5));

        var b = [10,50,30,20,70,40];
        console.log(b.join(":"));
        console.log(b.sort().join(":"));
        console.log(b.reverse().join(":"));

        var aa = new Array(10,20,30); 
        console.log(aa.join(":"));
        aa.push(50);
        aa.push(40);
        console.log(aa.join(":"));
        aa.pop();
        console.log(aa.join(":"));

        //清空
        console.log(b.join(":"));
        b.length = 3;
        console.log(b.join(":"));
        b = [];
        console.log(b.join(":"));
    </script>

JavaScript内置对象-基本包装类型

<script>
        //内置对象--基本保装类型
        var s1 = 'zhangsan';
        //字符串截取
        console.log(s1.substring(2,5))
        //等价于
        var s2 = new String("zhangsan");
        console.log(s2.substring(2,5));
        //保留两位
        var num = 20.5678;
        var num = new Number(20.5678);
        console.log(num.toFixed(2));
        
    </script>

Js事件

<button οnclick='document.getElementById("demo").innerHTML=Date()'>现在的时间是?</button>

Button 是事件源

Onclick 单击事件

“”里是事件处理程序

//改变 HTML 元素的样式

hid.style.backgroundColor = "#ddd";(将有-的CSS变为去掉-后面首字母大写)

Timing

Js事件绑定方式

主动绑定

<button οnclick="fun()">按钮1</button>

被动绑定 

<button id="bid">按钮2</button>

Js获取事件源对象

//此种事件绑定方式,this就表示当前事件源对象

        //console.log(this);

        this.style.color = "red";

Js双击事件dblclick

contextmenu鼠标右击事件

mouse鼠标移入移出

JavaScript语言实例--键盘事件onkeydown

JavaScript语言实例--onload事件

<script>

        //当页面加载完成后才自动执行的程序

        window.onload = function(){

            var hid = document.getElementById("hid");

            hid.style.color="red";

        }

</script>

JQuery

Query 是一个 JavaScript 函数库。(使用比JavaScript更加简单)

jQuery 库包含以下特性:

HTML 元素选取

HTML 元素操作

CSS 操作

HTML 事件函数

JavaScript 特效和动画

HTML DOM 遍历和修改

AJAX

Utilities

//当前页面加载完成后执行
        window.onload
//jQuery的标准入口
        $(document).ready(function(){
            //获取h1标签,并设置css样式
            $("h1").css("color","blue");
        });

JQuery选择器

 

JQuery基本选择器
//等价于上面语句,获取id值为hid元素节点,并设置css样式
            $("#hid").css("color","blue");
//获取网页中所有li元素节点,并设置css样式
            //$("li").css("color","red");
JQuery层级选择器
//获取ul中所有子元素节点li(包括后代节点),并设置样式
            //$("ul li").css("color","red"); 
            
            //获取ul中所有直接子元素节点li(包括后代节点),并设置样式
            //$("ul>li").css("color","red");

            //获取ul同级紧邻后面的第一个兄弟节点li,并设置样式
            //$("ul+li").css("color","red");

            //获取ul后面所有同级兄弟li元素节点,并设置样式
            $("ul~li").css("color","red");
JQuery基本筛选器
//获取所有li节点并设置样式
            //$("li").css("color","red");

            //获取第一个li节点并设置样式
            //$("li:first").css("color","red");

            //获取最后一个li节点并设置样式
            //$("li:last").css("color","red");

            //获取偶数索引号对应的所有li节点并设置样式
            //$("li:even").css("color","red");

            //获取奇数索引号对应的所有li节点并设置样式
            //$("li:odd").css("color","red");

            //获取class属性值为cc的所有li节点并设置样式
            //$("li.cc").css("color","red");

            //获取class属性值不为cc的所有li节点并设置样式
            //$("li:not(.cc)").css("color","red");

            //获取索引位置为2的li节点并设置样式
            //$("li:eq(2)").css("color","red");

            //获取前2个li节点并设置样式
            //$("li:lt(2)").css("color","red");

            //获取所有li节点并添加鼠标移入和移出事件
            $("li").mouseover(function(){
                $(this).animate({paddingLeft:"+=20"},800);
            }).mouseout(function(){
                $(this).animate({paddingLeft:"-=20"},500);
            });
JQuery内容选择器
//jquery入口
        $(function(){
            $("div:contains('John')").css("color","red");
        });
JQuery属性选择器
//获取所有含有value属性的input元素标签,并设置样式
            //$("input[value]").css("border","1px solid red");

            //获取name属性值为phone的input元素标签,并设置样式
            //$("input[name='phone']").css("border","1px solid red");

            //获取name属性值不为phone的input元素标签,并设置样式
            //$("input[name!='phone']").css("border","1px solid red");

            //获取name属性值是以a字符开头的所有input元素标签,并设置样式(正则)
            //$("input[name^='a']").css("border","1px solid red");

            //获取name属性值是以e字符结尾的所有input元素标签,并设置样式
            //$("input[name$='e']").css("border","1px solid red");

            //获取name属性值中含有m字符的所有input元素标签,并设置样式
            $("input[name*='m']").css("border","1px solid red");
JQuery属性选择器
//获取每组ul中的第一个li节点并添加样式
            //$("ul li:first-child").css("color","red");

            //获取每组ul中的最后一个li节点并添加样式
            //$("ul li:last-child").css("color","red");

            //获取每组ul中的第三个li节点并添加样式
            $("ul li:nth-child(3)").css("color","red");
JQuery表单选择器
function doFun(){
            //获取所有多选框中选择中的元素节点
            //var list = $("input[type='checkbox']:checked");
            var list = $(":checkbox:checked");
            alert(list.length);
            
            //获取li元素节点(条件是里面的多选框必须选中),并设置样式
            $("li:has(input:checked)").css("color","red");
        }

 JQuery属性操作

var a = $("#aid");
            console.log(a.attr("href")); //获取
            console.log(a.prop("href")); //获取
            console.log(a.attr("title"));
            console.log(a.prop("title"));
            a.attr("href","http://news.baidu.com"); //添加或更改
            a.removeAttr("title"); //删除属性
            //a.attr("aa","bb"); //添加属性
            // a.prop("aa","bb"); //添加属性 prop方法不可以添加不能存在的属性
a.prop("title","百度新闻"); //只支持HTML DOM的属性操作

JQuery CSS类操作

<script>
        //jquery入口
        $(function(){
            //获取上面所有的li节点并添加点击事件
            $("ul.uu li").click(function(){
                //切换class类属性
                $(this).toggleClass("active");
                /*
                //判断当前节点li是否含有active class属性
                if($(this).hasClass('active')){
                    //删除class类属性
                    $(this).removeClass("active");
                }else{
                    //添加class类属性
                    $(this).addClass("active");
                }
                */
            });
        });
       
    </script>

 JQuery CSS文本与值操作

//获取文本全部信息
console.log($("li.c1").html()); //类似于js中的innerHTML
//获取文本显示的信息
 console.log($("li.c2").text());
//设置信息
$("li.c3").html('<a href="http://www.qq.com">腾讯2</a>');
            $("li.c4").text('<a>新浪2</a>');

JQuery CSS样式操作 

$(function(){
            //获取标题并设置css样式
            //$("#hid").css("color","red"); //单个属性设置
            $("#hid").css({"color":"green","background-color":"#ddd"});
            console.log($("#hid").css("color")); //获取css属性

            //获取div层的位置
            var offset = $("#inner").offset();
            console.log(offset.left,offset.top);

            //获取偏移位置
            var position = $("#inner").position();
            console.log(position.left,position.top);

            //获取尺寸
            console.log($("#inner").width(),$("#inner").height());
            $("#inner").width(300)
        });

JQuery 节点遍历 

<script>
        //jquery入口
        $(function(){
           $("button").click(function(){
               //$("li").css("color","red");
               //获取li节点并遍历执行操作
               $("li").each(function(i){
                    //alert(i); //索引位置
                    $(this).html($(this).html()*2);
               });
           });

           /*
           //统一绑定点击事件
           $("li").click(function(){
               alert($(this).html());
           });
           */
        });
    </script>

JQuery 事件 

<script>
        //jquery入口
        $(function(){
           //获取投票按钮并绑定一次性点击事件
           $("#bid").one("click",function(){
               alert("投票成功!");
               $(this).html("已投票");
           });
        });

        function dofun(){
            console.log("事件被点击!");
            $("#hid").css("color","red");
            //使用jquery程序激发一个事件
            $("#bid").trigger("click");
        }
</script>

JQuery 鼠标移入移出事件 

over:鼠标移到元素上要触发的函数

out:鼠标移出元素要触发的函数

当鼠标移到元素上或移出元素时触发执行的事件函数

$("#did").hover(function(){
                //鼠标移入事件处理
                console.log("鼠标移入111。。。。");
            },function(){
                //鼠标移出事件处理
                console.log("鼠标移出11。。。。");
            });

jQuery实例--阻止事件冒泡

当有div嵌套时,点击一个按钮会导致两个按钮都触发(所以需要阻止事件冒泡)

<h1 id="hid">jQuery实例--阻止事件冒泡</h1>
    <div id="outer">
       <div id="inner"></div>
    </div>
    
    <script src="./jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取div层并绑定点击事件
            $("#outer").click(function(){
                console.log("outer.....");
            });
            $("#inner").click(function(e){
                console.log("inner.....");
                //阻止事件冒泡(传播)
                e.stopPropagation();
            });
        });
       
    </script>

 

  •  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值