当前位置: 首页 > news >正文

【前端开发学习】4.JavaScript

文章目录

  • 1 JavaScript
    • 1.1 代码位置
    • 1.2 存在形式
    • 1.3 注释
    • 1.4 变量
    • 1.5 字符串类型
      • 案例:走马灯
    • 1.5 数组
      • 案例:动态数据
    • 1.6 对象(字典)
      • 案例:动态表格
    • 1.7 条件语句
    • 1.8 函数
  • 2 DOM
    • 2.1 事件绑定

1 JavaScript

一门编程语言,能够实现动态效果。

案例:实现确认弹窗。

在这里插入图片描述

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.min.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 type="text/javascript">
        function myFunc(){
            confirm("是否要继续")
        }
    </script>
</body>
</html>

1.1 代码位置

一般都放在位置2

1.2 存在形式

  1. 当前 HTML 中:

    <script type="text/javascript">
        //编写JavaScript代码
    </script>
    
  2. 在其它 js 文件中,导入使用:

    <script src="xxx.js"></script>
    <script type="text/javascript">
            //编写JavaScript代码
    </script>
    

1.3 注释

  1. HTML :
    <!-- 注释内容 -->

  2. CSS: (只能放在 style 中)
    /* 注释内容 */

  3. JavaScript:(只能放在 script 块)
    // 注释内容
    /* 注释内容 */

1.4 变量

<body>
    <script type="text/javascript">
        var name = "rice";
        console.log(name);
    </script>
</body>

1.5 字符串类型

// 声明
var name = "rice";
var name = String("rice");
// 常见功能
var name = "rice";

var v1 = name.length; // 4
var v2 = name[0]; // r
var v3 = name.trim(); // 去除空白
var v4 = name.substring(0, 2); // 左闭右开

案例:走马灯

效果图:

在这里插入图片描述

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.min.css">
</head>
<body>
<span id="txt">欢迎中国联通领导莅临指导</span>
<script type="text/javascript">
    function show(){
        // 1.去HTML中找到某个标签并获取它的内容 (DOM)
        var tag = document.getElementById("txt");
        var dataString = tag.innerText;

        // 2.动态起来,把文本中的第一个字符放在字符串的最后
        var firstString = dataString[0];
        var otherString = dataString.substring(1, dataString.length);
        var newText = otherString + firstString;

        // 3.在HTML标签中更新内容
        tag.innerText = newText;
    }
        // JavaScript中的定时器,如:每1s执行一次函数
        setInterval(show, 1000);
</script>
</body>
</html>

1.5 数组

// 定义
var v1 = [11, 22, 33, 44];
var v2 = Array([11, 22, 33, 44]);
// 操作
var v1 = [11, 22, 33, 44];

v1[1]
v1[0] = "rice";

v1.push("meal"); // 尾部添加
v1.unshift("meal"); // 头部添加

v1.splice(索引位置, 0, 元素);

v1.pop(); // 尾部删除
v1.shift(); // 头部删除
v1.splice(索引位置, 1); // 索引位置删除

// 循环
for(var idx in v1){
	// idx = 0/1/2... data = v1[data]
}

for(var i=0; i<v1.length; i++){
}

案例:动态数据

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.min.css">
</head>
<body>
    <ul id="city"></ul>
    <script type="text/javascript">
        // 发送网络请求,获取数据
        var cityList = ["北京", "上海", "深圳"];
        for(var idx in cityList){
            var text = cityList[idx];
    
            // 创建<li></li>
            var tag = document.createElement("li");
            // 在li标签中写入内容
            tag.innerText = text;
    
            // 添加到id=city标签中 DOM
            var parentTag = document.getElementById("city");
            parentTag.appendChild(tag);
        }
    </script>
</body>
</html>

1.6 对象(字典)

info = {
	"name": "rice";
	"age": 18;
}

info = {
	"name": "rice";
	age: 18;
}

info.age
info.name = "candy"
info["age"]

delete info["age"]

案例:动态表格

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.min.css">
</head>
<body>
    <table border="2">
        <thead>
            <th>id</th>
            <th>name</th>
            <th>age</th>
        </thead>
        <tbody id="body"></tbody>
    </table>
    <script type="text/javascript">
        var info = {id: 1, name: "rice", age: 19};

        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>

1.7 条件语句

if(条件){

}else{

}

1.8 函数

function func(){
	...
}

// 执行
func()

2 DOM

一个模块,它可以对 HTML 页面中的标签进行操作。

// 根据 ID 获取标签
var tag = document.getElementById("xx")

// 获取标签中的文本
tag.innerText

// 修改标签中的文本
tag.innerText = "xxx"

// 创建标签 <div>xxx</div>
var tag = document.createElement("div");

2.1 事件绑定

效果图:

在这里插入图片描述

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.min.css">
</head>
<body>
<input type="text" placeholder="请输入内容" id="txtUser" />
<input type="button" value="点击添加" onclick="addCityInfo()">
<ul id="city"></ul>
<script type="text/javascript">
        function addCityInfo(){
        // 1.找到输入标签
        var txtTag = document.getElementById("txtUser");

        // 2.获取input输入框中用户输入的内容
        var newString = txtTag.value;

        // 判断用户输入是否为空,只有不为空才能继续
        if(newString.length > 0){
            // 3.创建标签 <li></li> 中间的文本信息就是用户输入的内容
            var newTag = document.createElement("li");
            newTag.innerText = newString;

            // 4.标签添加到ul中
            var parentTag = document.getElementById("city");
            parentTag.appendChild(newTag);

            // 5.清空input内容
            txtTag.value = "";
        }else{
            alert("输入不能为空");
        }
    }
</script>
</body>
</html>

注意, DOM 还有很多操作,但是比较繁琐,因此通常使用 JQuery 来实现。

相关文章:

  • 【大数据技术Hadoop+Spark】HBase分布式数据库架构、特点、数据存储方式、寻址机制详解(图文解释)
  • K8s——Service、代理模式演示(二)
  • 哈希表及其与Java类集的关系
  • CSS基础总结(二)
  • 《Python多人游戏项目实战》第三节 在窗口上显示玩家ID以及对话内容
  • SpringBoot【配置文件】
  • 王卫点赞友商?北京快递保卫战,顺丰彰显大格局大气度
  • 95 C语言初阶练习题
  • Class Charset
  • 深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码)
  • SpringBoot+Vue实现前后端分离的小而学在线考试系统
  • Redis常见面试题(二)
  • Servlet应用(Request+response对象)
  • 蓝桥杯嵌入式 cubeMX生成代码解读
  • 微软确认配置错误导致65,000多家公司的数据泄露
  • [译] 怎样写一个基础的编译器
  • 【EOS】Cleos基础
  • es6
  • k8s如何管理Pod
  • LeetCode29.两数相除 JavaScript
  • Linux CTF 逆向入门
  • Python 反序列化安全问题(二)
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 警报:线上事故之CountDownLatch的威力
  • 前端面试总结(at, md)
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 数组的操作
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 进程与线程(三)——进程/线程间通信
  • #NOIP 2014#Day.2 T3 解方程
  • #vue3 实现前端下载excel文件模板功能
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (12)目标检测_SSD基于pytorch搭建代码
  • (13):Silverlight 2 数据与通信之WebRequest
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (南京观海微电子)——COF介绍
  • (三)docker:Dockerfile构建容器运行jar包
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET CLR基本术语
  • .NET 材料检测系统崩溃分析
  • @EnableWebMvc介绍和使用详细demo
  • @Import注解详解
  • @SentinelResource详解
  • [ JavaScript ] JSON方法
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [Angular 基础] - 数据绑定(databinding)
  • [APIO2015]巴厘岛的雕塑
  • [C++][数据结构][算法]单链式结构的深拷贝
  • [C++]priority_queue的介绍及模拟实现
  • [Docker]十.Docker Swarm讲解
  • [GXYCTF2019]BabyUpload1 -- 题目分析与详解