JavaScript基础和jquery

Javascript(网站的行为)

1. javascript是一门编程语言

  • DOM和BOM是javascript的内置模块
  • jqurey相当于编程语言的第三方模块

2.javascript

javascript的意义是什么呢:就是让你的网页动起来,让网页含有动态效果

初步的了解

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript</title>
    <link rel="stylesheet" href="bootstrap/bootstrap-3.4.1-dist/css/bootstrap.css">
    <style>
        .menus{
            width: 200px;
            border: 1px solid red;
        }
        .menus .header{
            background-color: gold;
            padding: 20px 10px;
        }
    </style>
</head>
<body>
<div class="menus">
    <div class="header" onclick="myFunc()">标题</div>
    <div class="item">内容</div>
</div>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script src="bootstrap/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
<script type="text/javascript">
    function myFunc(){
        // alert("你好呀");
        confirm("是否要继续?")
    }
</script>
</body>
</html>

3.JavaScript作用区域

  • 直接写在html中
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript</title>
    <link rel="stylesheet" href="bootstrap/bootstrap-3.4.1-dist/css/bootstrap.css">
    <style>
        .menus{
            width: 200px;
            border: 1px solid red;
        }
        .menus .header{
            background-color: gold;
            padding: 20px 10px;
        }
    </style>
    <script type="text/javascript">
        //编写javascript的代码(位置1)不推荐影响效率
    </script>
</head>
<body>
<div class="menus">
    <div class="header">标题</div>
    <div class="item">内容</div>
</div>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script src="bootstrap/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
<script type="text/javascript">
    //编写javascript代码(位置2)推荐
</script>
</body>
</html>
  • 写一个js文件然后导入
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript</title>
    <link rel="stylesheet" href="bootstrap/bootstrap-3.4.1-dist/css/bootstrap.css">
    <style>
        .menus{
            width: 200px;
            border: 1px solid red;
        }
        .menus .header{
            background-color: gold;
            padding: 20px 10px;
        }
    </style>
</head>
<body>
<div class="menus">
    <div class="header" onclick="myFunc()">标题</div>
    <div class="item">内容</div>
</div>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script src="bootstrap/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
<script src="存在形式.js"></script>
</body>
</html>

4.javascript的注释

  • html的注释
<!--注释内容-->
  • css的注释
/* 注释内容 */
  • JavaScript的注释
//注释内容
/* 注释内容*/

5.javascript基础

5.1 变量

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript</title>
</head>
<body>
<script type="text/javascript">
    var name = "love";  //定义一个字符串
    console.log(name);   //输出,要在f12里查看
</script>
</body>
</html>
5.1.1 字符串类型
//声明
var name = "love";
var name = String("love");
//常见功能
var name = "love"

var v1 = name.length;
//按索引取值
var v2 = name[0]
var v22 = name.charAt(0)
//去空格
var v3 = name.trim()
//切片(前取后不取)
var v4 = name.substring(0, 2)
案例:跑马灯
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript</title>
</head>
<span id="txt">中国联通</span>
<body>
<script type="text/javascript">
    function show() {
        //去html中的标签获得内容(DOM)
        //获取标签对象
        var tag = document.getElementById("txt");
        //从对象中获取字符串
        var dataString = tag.innerText;
        //动态起来,把第一个字母放到最后面
        var firstChar = dataString[0];
        var otherString = dataString.substring(1, dataString.length);
        var newText = otherString + firstChar;
        //在html中更新我们的内容
        tag.innerText = newText;
    }

    //BOM中的一个定时器,每一秒执行一次show函数
    setInterval(show, 1000);
</script>
</body>
</html>

5.2 数组

//定义
var v1 = [11,22,33,44];
var v2 = Array[11,22,33,44];
//常见操作
<script type="text/javascript">
    var v1 = [11, 22, 33, 44];

    //按索引取值
    var v2 = v1[1];

    //按索引修改
    v1[0] = "love";

    //添加和删除
    v1.push(99); //在尾部添加
    v1.unshift(88); //在头部添加
    v1.splice(1, 0, 77) //在特定位置添加(索引,0,要添加的元素)
    v1.pop() //在尾部删除
    v1.shift() //在头部删除
    v1.splice(2, 1) //索引为2的元素删除(索引,1)

    //循环
    var v3 = [11, 22, 33, 44]
    for (var item in v3) {
        //item为索引
        //拿数据
        var data = v3[item]
    }
    //循环方法2
    var v4 = [11, 22, 33, 44]
    for (var i = 0; i < v4.length; i++) {
        var data2 = v4[i]
    }
</script>
案例 动态数据
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript</title>
</head>
<body>
<ul id="city"></ul>
<script type="text/javascript">
    var cityList = ["北京", "上海", "深圳", "成都"];
    for (var idx in cityList) {
        var text = cityList[idx];
        //创建一个li标签(DOM)
        var tag = document.createElement("li");
        //在li标签中写入内容
        tag.innerText = text
        //添加到id为city的ul标签中(DOM)
        var parentTag = document.getElementById("city");
        parentTag.appendChild(tag);
    }
</script>
</body>
</html>

5.3 对象

info={
    "name":"love",
    "age":18.
}

info={
    name="love",
    age=18
}
<script type="text/javascript">
    info = {
        name: "love",
        age: 18,
    }

    //根据对象的key来取值和修改值
    var userName = info.name
    info.age = 19

    //第二种写法
    var userName2 = info["name"]
    info["age"] = 20

    //删除对象的值
    delete info["age"]

    //对对象循环
    for (var key in info) {
        var data = info[key]
    }
</script>
案例:动态表格
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript</title>
</head>
<body>
<table border="1">
    <thead>
    <tr>
        <th>id</th>
        <th>姓名</th>
        <th>年龄</th>
    </tr>
    </thead>
    <tbody id="body">

    </tbody>
</table>
<script type="text/javascript">
    var dataList = [
        {id: 1, name: "love", age: 18},
        {id: 2, name: "love", age: 18},
        {id: 3, name: "love", age: 18},
        {id: 4, name: "love", age: 18},
        {id: 5, name: "love", age: 18},
        {id: 6, name: "love", age: 18},
    ];
    for (var idx in dataList) {
        var info = dataList[idx];
        var tr = document.createElement("tr");
        for (var key in info) {
            var text = info[key];
            var td = document.createElement("td");
            td.innerText = text;
            tr.appendChild(td);
        }
        var bodyTag = document.getElementById("body");
        bodyTag.appendChild(tr)
    }
</script>
</body>
</html>

5.3 条件语句

if(条件){
    
}else{
   
}    
if(条件){
    
}else if(条件){
    
}else if(条件){
    
}else{
    
}

5.4 函数

funtion func(){
    .....
}

func()

6. DOM

DOM是一个模块,可以结和javascript对html的标签进行操作

<div id="dom">欢迎使用javascript的</div>
<script type="text/javascript">
    //创建标签
    var div = document.createElement("div");
    //根据id获取标签
    var tag = document.getElementById("dom");
    //获取标签中的文本
    tag.innerText;
    //设置标签中的文本
    div.innerText = "DOM";
    //添加标签在html中
    tag.appendChild(div);
</script>

6.1 事件的绑定

案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript</title>
</head>
<body>
<input type="button" value="点击添加" onclick="addCityInfo()"/>
<ul id="city">

</ul>
<script>
    function addCityInfo() {
        var newTag = document.createElement("li");
        newTag.innerText = "中国";
        var tag = document.getElementById("city");
        tag.appendChild(newTag);
    }
</script>
</body>
</html>

进阶案例输入添加

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript</title>
</head>
<body>
<input type="text" placeholder="请输入内容:" id="userTxt"/>
<input type="button" value="点击添加" onclick="addCityInfo()"/>
<ul id="city">

</ul>
<script>
    function addCityInfo() {
        var txtTag = document.getElementById('userTxt');
        var newString = txtTag.value;
        if (newString.length > 0) {
            var newTag = document.createElement("li");
            newTag.innerText = newString;
            var tag = document.getElementById('city');
            tag.appendChild(newTag);
            txtTag.value = '';
        }else {
            alert("输入不能为空") //BOM
        }
    }
</script>
</body>
</html>

6.2 注意

DOM还有很多功能

DOM可以实现很多功能,但是比较繁琐
我们后期会用一个类库jqurey来实现
或者后期会用VUE.js/react.js来实现

7. jqurey

jqurey是JavaScript的一个第三方模块

  • 基于jqurey,自己开发一个功能
  • 现成的工具依赖jqurey eg:bootstrap动态效果

7.1 快速上手

7.1.1 下载jquery
https://jquery.com/
7.1.2 应用jquery
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>

7.2 初识jquery

<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    //利用jquery的功能实现我们的效果
    $('#txt').text("四川联通");
    //利用DOM
    document.getElementById('txt').innerText="四川联通";
</script>

两种方法对比实现同一个功能jQuery会比DOM简单

7.3 寻找标签(直接寻找)

  • id选择器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>

</head>
<h1 id="txt">中国联通</h1>
<body>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $('txt')
</script>
</body>
</html>

通过id寻找标签

  • 样式选择器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>

</head>
<h1 class="c1">中国联通</h1>
<body>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $('.c1')
</script>
</body>
</html>

通过类选择

  • 标签选择器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>

</head>
<h1 class="c1">中国联通</h1>
<div></div>
<body>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $('div')
</script>
</body>
</html>

通过标签找到标签

  • 层级选择器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
</head>
<div class="c1">
    <div class="c2">
        <a></a>
    </div>
</div>
<body>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $('.c1 .c2 a')
</script>
</body>
</html>
  • 多选择器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
</head>
<div class="c1">
    <div class="c2">
        <a></a>
    </div>
</div>
<div class="c3">
</div>
<body>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $('.c1,.c3')
</script>
</body>
</html>

用逗号隔开

7.4 间接寻找

  • 找到上一个兄弟
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
</head>
<body>
<div>
    <div>北京</div>
    <div id="c1">上海</div>
    <div>成都</div>
    <div>深圳</div>
</div>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $('#c1').prev(); //找到上一个---北京
    $('#c1');
    $('#c1').next(); //找到下一个---成都
    $("#c1").next().next()  //下一个的下一个----深圳
    $("#c1").siblings()  //所有的兄弟
</script>
</body>
</html>
  • 找父子
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
</head>
<body>
<div id="c1">
    <div id="c2">
        <div>北京</div>
        <div id="c3">上海</div>
        <div>成都</div>
        <div>深圳</div>
    </div>
</div>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $('#c3').parent(); //父亲id=c2的div
    $("#c3").parent().parent(); //父亲的父亲id=c1的div
    $('#c1').children() //获取所有的孩子
    $("#c1").children("#c2")    //获取id=c2的孩子
    $("#c1").find("#c3")    //找到id=c3的子孙
</script>
</body>
</html>

7.5 案例:菜单切换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
    <style>
        .menus {
            width: 200px;
            height: 800px;
            border: 1px solid red;
            text-align: center;
        }

        .menus .item .header {
            background-color: gold;
            padding: 10px 5px;
            cursor: pointer;
        }

        .menus .item .content a {
            display: block;
            padding: 10px 5px;
            border-bottom: 2px dotted greenyellow;
        }

        .hide {
            display: none;
        }
    </style>
</head>
<div class="menus">
    <div class="item">
        <div class="header" onclick="clickMe(this)">上海</div>
        <div class="content hide">
            <a>宝山区</a>
            <a>青浦区</a>
            <a>浦东新区</a>
        </div>
        <div class="item">
            <div class="header" onclick="clickMe(this)">北京</div>
            <div class="content hide">
                <a>海淀区</a>
                <a>昌平区</a>
                <a>大兴区</a>
            </div>
        </div>
    </div>
</div>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    function clickMe(self) {
        //获取onclick下一个标签的hide属性
        var hasClass = $(self).next().hasClass("hide")
        //判断属性是否存在
        //如果存在移除
        if(hasClass){
            $(self).next().removeClass("hide")
        }
        //不存在就加入hide属性
        else {
            $(self).next().addClass("hide")
        }
    }
</script>
</body>
</html>

7.5 值的操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
    <style>

    </style>
</head>
<body>
<div id="c1">内容</div>
<input type="text" id="c2">
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $("#c1").text();         //获取文本内容
    $("#c1").text("内容");      //设置文本内容
    $("#c2").val();         //获取用户输入的内容
    $("#c2").val("内容")      //设置内容
</script>
</body>
</html>
7.5.1 案例:动态创建数据
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
    <style>

    </style>
</head>
<body>
<input type="text" id="textUser" placeholder="用户名"/>
<input type="text" id=textEmail placeholder="邮箱"/>
<input type="button" value="提交" onclick="getInfo()">
<ul id="view">

</ul>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    function getInfo() {
        //获取用户输入的内容
        var userName = $("#textUser").val();
        var userEmail = $("#textEmail").val();
        var dataString = userName + "----" + userEmail;
        //创建li标签并写入内容
        //创建li标签
        var newLi = $("<li>").text(dataString);

        //将li标签放入ul中
        $("#view").append(newLi);
    }
</script>
</body>
</html>

7.6 jquery中的绑定事件

DOM的绑定事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
    <style>

    </style>
</head>
<body>

<input type="button" value="提交" onclick="getInfo()">

<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    function getInfo() {

    }
</script>
</body>
</html>

jquery的事件绑定:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
    <style>

    </style>
</head>
<body>
<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    //给所有的li标签绑定所有的事件
    $("li").click(function (){
        //点击li标签时自动执行这个函数
        //$(this)  当前你点击的标签
    })
</script>
</body>
</html>
7.6.1 案例:绑定事件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
    <style>

    </style>
</head>
<body>
<ul>
    <li>百度</li>
    <li>谷歌</li>
    <li>搜狗</li>
</ul>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    //给所有的li标签绑定所有的事件
    $("li").click(function () {
        var text = $(this).text();
        console.log(text)
    })
</script>
</body>
</html>
7.6.2 删除标签
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
    <style>

    </style>
</head>
<body>
<div id="c1">内容</div>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $("#c1").remove();
</script>
</body>
</html>
7.6.3 案例加删除标签
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
    <style>

    </style>
</head>
<body>
<ul>
    <li>百度</li>
    <li>谷歌</li>
    <li>搜狗</li>
</ul>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    //给所有的li标签绑定所有的事件
    $("li").click(function () {
        $(this).remove();
    })
</script>
</body>
</html>
7.6.4 当页面框架执行完成后自动执行的函数
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
    <style>

    </style>
</head>
<body>
<ul>
    <li>百度</li>
    <li>谷歌</li>
    <li>搜狗</li>
</ul>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("li").click(function () {
            $(this).remove();
        })
    })

</script>
</body>
</html>

7.7 案例:表格操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
    <style>

    </style>
</head>
<body>
<table border="1">
    <thead>
    <tr>
        <td>id</td>
        <td>姓名</td>
        <td>操作</td>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td>1</td>
        <td>zxr</td>
        <td>
            <input type="button" value="删除" class="delete">
        </td>
    </tr>
    <tr>
        <td>2</td>
        <td>zxr</td>
        <td>
            <input type="button" value="删除" class="delete">
        </td>
    </tr>
    <tr>
        <td>3</td>
        <td>zxr</td>
        <td>
            <input type="button" value="删除" class="delete">
        </td>
    </tr>
    <tr>
        <td>4</td>
        <td>zxr</td>
        <td>
            <input type="button" value="删除" class="delete">
        </td>
    </tr>
    </tbody>
</table>
<script src="bootstrap/bootstrap-3.4.1-dist/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
    $(function () {
        //找到所有class标签并绑定事件
        $(".delete").click(function () {
            //删除当前行数据
            $(this).parent().parent().remove();
        })
    })

</script>
</body>
</html>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值