前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈JavaScript

浅谈JavaScript

作者头像
用户9399690
发布2022-01-20 15:36:37
3.2K0
发布2022-01-20 15:36:37
举报
文章被收录于专栏:码猴小明码猴小明

推荐文章:

Liunx系列:

1、Linux基础命令

2、Linux进阶命令 任务编程系列:

1、多任务编程 - 1

2、多任务编程 - 2

网络编程:

1、网络编程

2、HTTP协议和静态Web服务器

前端技术:

1、JavaScript


jQuery的介绍

1、jQuery的定义

jQuery是对JavaScript的封装,它是免费、开源的JavaScript函数库,jQuery极大地简化了JavaScript编程。

2、jQuery的作用

jQuery和JavaScript它们的作用一样,都是负责网页行为操作,增加网页和用户的交互效果,只不过jQuery简化了JavaScript编程,jQuery实现交互效果更简单。

3、jQuery的优点

  • jQuery兼容了现在主流的浏览器,增加了程序员的开发效率
  • jQuery简化了JavaScript编程,代码编写更加简单

4、小结

  • jQuery是一个免费、开源的JavaScript函数库
  • jQuery的作用和JavaScript一样,都是负责网页和用户的交互效果
  • jQuery的优点就是兼容主流浏览器,代码编写更加简单

jQuery的用法

提示:jQuery官网:https://code.jquery.com

1、jQuery的引入

代码语言:javascript
复制
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>

2、jQuery的入口函数

我们知道使用js获取标签元素,需要页面加载完成以后再获取,我们通过给onload事件属性设置了也个函数来获取标签元素,而jquery提供了ready函数来解决这个问题,保证获取标签元素没有问题,它的速度比原生的window.onload更快。

入口函数示例代码(原生js代码):

代码语言:javascript
复制
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
    window.onload = function(){
        var oDiv = document.getElementById('div01');
        alert('原生就是获取的div:' + oDiv);
    };
    $(document).ready(function(){
    var $div = $('#div01');
    alert('jquery获取的div:' + $div);
    });
</script>
<div id="div01">这是一个div元素</div>

注:符号就是jquery的象征,本质就是函数,只不过这个函数名(

结论:ready 等待页面标签加载完成以后执行ready事件,不会等待资源数据加载完成

入口函数简写示例代码(jquery的简写方式):

代码语言:javascript
复制
$(function(){
    var $div = $('#div01');
    alert($div);
})

jQuery选择器

1、jQuery选择器的介绍

jquery选择器就是快速选择标签元素,获取标签的,选择规则和css样式一样

2、jQuery选择器的种类

  1. 标签选择器
  2. 类选择器
  3. id选择器
  4. 层级选择器
  5. 属性选择器

示例代码:

代码语言:javascript
复制
$('#myId') //选择id为myId的标签
$('.myClass') //选择class为myClass的标签
$('li') //选择所有li标签
$('#ul1 li span') //选择ul1标签下的所有li标签下的span标签
$('input[name=first]') //选择name属性为first的input标签

说明:

可以使用length属性来判断标签是够选择成功,如果length大于0表示选择成功,否则选择失败。

代码语言:javascript
复制
$(function(){
    result = $('#div').length;
    alert(result);
});

选择集过滤

1、选择集过滤的介绍

选择集过滤就是在选择标签的集合里面过滤自己需要的标签。

2、选择集过滤的操作

  • has(选择器名称)方法,表示选取包含指定选择器的标签
  • eq(索引)方法,表示选取指定索引的标签

has方法的示例代码:

代码语言:javascript
复制
<script>
    $(function(){
    //has方法的使用
    var $div = $("div").has("#mytext");
    //设置样式
    $div.css({"background":"red"});
    })
</script>
<div>
    这是第一个div
    <input type="text" id="mytext">
</div>
<div>
    这是第二个div
    <input type="text">
    <input type="button">
</div>

eq方法的示例代码:

代码语言:javascript
复制
<script>
$(function(){
    //eq方法的使用
    var $div = $("div").eq(1);
    //设置样式
    $div.css({"background":"blue"});
    });
</script>
<div>
    这是第一个div
    <input type="text" id="mytext">
    </div>
<div>
    这是第二个div
    <input type="text">
    <input type="button">
</div>

选择集转移

1、选择集转移介绍

选择集转移就是以选择的标签为参照,然后获取转移后的标签

2、选择集转移操作

$('#box').prev(); //表示选择id是box元素的上一个同级元素

$('#box').prevAll(); //表示选择id是box元素的上面所有同级元素

$('#box').next(); //表示选择id是box元素的下一个同级元素

$('#box').nextAll(); //表示选择id是box元素的下面所有同级元素

$('#box').parent(); //表示选择id是box元素的父元素

$('#box').children(); //表示选择id是box元素的所有子元素

$('#box').siblings(); //表示选择id是box元素的所有同级元素

$('#box').find('.myClass'); //表示选择id是box元素的class等于myClass的元素

获取和设置元素的内容

1、html方法的使用

jquery中的html方法可以获取和设置标签的html内容

示例代码:

代码语言:javascript
复制
<script>
    $(function(){
        var $div = $('#div1’);
        //获取标签的html内容
        var result = $div.html();
        alert(result);    
        //设置标签的html内容,之前的内容都会清除
        $div.html("<span style='color:red'>你好</span>");
        //追加html内容
        $div.append("<span style='color:red'>你好</span>")
    });
</script>

说明:给指定标签追加html内容使用append方法

获取和设置元素属性

1、prop方法的使用

之前使用css方法可以给标签设置样式属性,那么设置标签的其他属性可以使用prop方法。

示例代码:

代码语言:javascript
复制
<script>
    $(function(){
        var $a = $('#link01');
        var $input = $('#input01');
        //获取元素属性
        var sId = $a.prop("id");
        alert(sId);
        //设置元素属性
        $a.prop({"href":"http://baidu.com","title":'这是去到百度的链            接',"class":"a01"});
        //获取value属性
        //var sValue = $input.prop("value");
        //alert(sValue);    
        //获取value属性使用val()方法的简写方式
        var sValue = $input.val();
        alert(sValue);
        //设置value值
        $input.val("2222");
    });
</script>
<a id="link01">这是一个链接</a>
<input type="text" id="input01" value="11111">

说明:获取value属性和设置value属性还可以通过val方法来完成

2、小结

  • 获取和设置元素属性的操作可以通过prop方法来完成
  • 获取和设置元素的value属性可以通过val方法来完成,更加方便

jQuery事件

1、常用事件

  • click()鼠标点击
  • blur()元素失去焦点
  • focus()元素获得焦点
  • mouseover()鼠标进入(进入子元素也触发)
  • mouseout()鼠标离开
  • ready()DOM加载完成

示例代码请私信作者哦

事件代理

1、事件代理介绍

事件代理就是利用事件冒泡的原理(事件冒泡就是事件会向它的父级一级一级传递),把事件加到父级上,通过判断事件来源,执行相应的子元素的操作,事件代理首先可以极大减少事件绑定次数,提高性能;其次可以让新加入的子元素也可以拥有相同的操作。

代码语言:javascript
复制
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
    $(function(){
        var $btn = $("#btn1");
        var $div = $("div");
        $btn.click(function(){
            alert('我是按钮');
            //扩展:取消事件冒泡,就是不让事件向父级控件传递
            //默认是事件会进行冒泡
            return false;
        });
        $div.click(function(){
            alert('我是div');
        });
    });
</script>
<div>
    <p id="p1">哈哈</p>
    <input type="text" value="按钮" id="btn1">
</div>

事件代理写法

代码语言:javascript
复制
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
    $(function(){
        var $btn = $("#btn1");
        var $div = $("div");
        $btn.click(function(){
            alert('我是按钮');
            //扩展:取消事件冒泡,就是不让事件向父级控件传递    
            //默认是事件会进行冒泡
            return false;
            });
        // $div.click(function(){
            // alert('我是div');
        // });
        //通过事件代理让父控件代理子控件的事件、然后执行子控件的相关操作
        var $ul = $("div ul");
        $ul.delegate("li","click",function(){
            $(this).css({"color":"red"});
        });
        //扩展:可以代理不同子控件的事件,多个选择器使用逗号进行分割就行了
        var $div1 = $("#box");
        $div1.delegate("#p2,#btn2","click",function(){
            alert("ok");
        });
    });
</script>
<div>
    <p id="p1">哈哈</p>
    <input type="text" value="按钮" id="btn1">
<ul>
    <li>哈哈</li>
    <li>嘻嘻</li>
    <li>美滋滋</li>
    <li>啦啦啦</li>
    </ul>
</div>
<div id="box">
<p id="p2">哈哈</p>
<input type="text" value="按钮" id="btn2">
</div>

JavaScript对象

1、JavaScript对象的介绍

JavaScript中的所有事物都是对象:字符串、数值、数组、函数等都可以认为是对象,此外,JavaScript允许自定义对象,对象可以拥有属性和方法。

2、JavaScript创建对象的操作

创建自定义JavaScript对象有两种方式:

  • 通过顶级Object类型来实例化一个对象
  • 通过对象字面量创建一个对象

Object类创建对象的示例代码

代码语言:javascript
复制
<script>
    var person = new Object();
    //添加属性
    person.name = 'tom';
    person.age = '25';
    //添加方法
    person.sayName = function(){
        alert(this.name);
    }
    //调用属性
    alert(person.age);
    person.sayName();
</script>

对象字面量创建对象的示例代码:

代码语言:javascript
复制
<script>
    var person2 = {
        name:'Rose',
        age:18,
        sayName:function(){
            alert('My name is' + this.name);
        }
    }
    //调用属性和方法
    alert(person2.age);
    person2.sayName();
</script>

说明:调用属性和方法的操作都是通过点语法的方式来完成,对象的创建推荐使用字面量方式,因为更加简单。

3、小结

创建自定义javascript对象有两种方式:

  • Object
  • 字面量

json

1、json的介绍

json是JavaScript Object Notation的首字母缩写,翻译过来就是JavaScript对象表示方法,这里说的json就是类似于JavaScript对象的字符串,它同时是一种数据格式,目前这种数据格式比较流行,逐渐替换掉了传统的xml数据格式。

2、json格式

json有两种格式:

  1. 对象格式
  2. 数组格式

对象格式

对象格式的json数据,使用一对大括号({}),大括号里面放入key:value形式的键值对,多个键值对使用逗号分隔。

对象格式的json数据:

代码语言:javascript
复制
{
    “name” = “李四”,
    “age” = 18
}

格式说明:

json中的(key)属性名称和字符串值需要用双引号引起来,用单引号或者不用引号会导致读取数据错误。

数组格式

数据格式的json数据,使用一对中括号([]),中括号里面的数据使用逗号分隔。

数组格式的json数据:

代码语言:javascript
复制
[“tom”, 18, “programmer"]

实际开发的json格式比较复杂,例如:

代码语言:javascript
复制
{
    "name": "jack",
    "age": 20,
    "hobby": [“reading”,”travel”,"photographs"],
    "school": {
        "name": "Merrimack College",
        “Location": "North Andover, MA"
    }
}

3、json数据转换成JavaScript对象

Json本质上是字符串,如果在js中操作json数据,可以将json字符串转化为JavaScript对象。

示例代码:

代码语言:javascript
复制
var sJson = ‘{"name”:"tom”,"age":18}’;
var oPerson = JSON.parse(sJson);
//操作属性
alert(oPerson.name);
alert(oPerson.age);

4、小结

  • json就是一个JavaScript对象表示法,json本质上是一个字符串
  • json有两种格式:1、对象格式,2、数组格式

ajax

1、ajax的介绍

ajax是一个前后台配合的技术,它可以让javascript发送异步的http请求,与后台通信进行数据的获取,ajax最大的优点就是实现局部刷新,ajax可以发送http请求,当获取到后台数据的时候更新页面显示数据实现局部刷新。意思就是当前端页面和后台服务器进行数据交互就可以使用ajax了

提示:在html页面使用ajax需要在web服务器环境下运行,一般向自己的web服务器发送ajax请求

2、ajax的使用

jquery将它封装成了一个$.ajax(),我们可以直接用这个方法来执行ajax请求。

示例代码:

代码语言:javascript
复制
<script>
$.ajax({
    //1.url 请求地址
    url:'http://t.weather.sojson.cpm/api/weather/city/101010100’,
    //2.type 请求方式,默认是‘GET’,还有‘POST’
    type:'GET',
    //3.dataType 设置返回的数据格式,常用的是‘json’格式
    dataType:'json',
    //4.data 设置发送给服务器的数据,没有参数不需要设置
    //5.success 设置请求成功后的回调函数
    success:function(response){
        console.log(response);
    },
    //6.error 设置请求失败后的回调函数
        error:function(){
        alert("请求失败,请稍后尝试");
    },
    //7.async 设置是否异步,默认值是‘true’,表示异步,一般不用写
        async:true,
    });
</script>

ajax方法的参数说明:

  1. url请求地址
  2. type请求方式,默认是‘GET’,常用的还有‘POST’
  3. dataType设置返回的数据格式,常用的是‘json’格式
  4. data设置发送给服务器的数据,没有参数不需要设置
  5. success设置请求成功后的回调参数
  6. error设置请求失败后的回调函数
  7. async设置是否异步,默认值是‘true’,表示异步,一般不用写
  8. 同步和异步的说明:
    • 同步是以恶搞ajax请求完成另外一个才可以请求,需要等待上一个ajax请求完成,好比线程同步。
    • 异步是多个ajax同时请求,不需要等待其他ajax请求完成,好比线程异步。

ajax的简写方式:

$.ajax按照请求方式可以简写成$.get或者$.post方式

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码猴小明 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档