教你用JavaScript实现计数器

案例介绍
欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!
我们来用JavaScript编程实战案例,做一个计数器。点击按钮数字改变,点击重置数字归0。
通过实战我们将学会forEach循环、contains方法、textContent属性。
案例演示
点击加号按钮数字增加,点击减号数字减少,数字可为负数,点击重置数字归0。
案例设计
JavaScript实战案例-计数器
我们来看此案例的思维导图设计,包括需求描述,页面设计和技术架构。
其中架构设计包含了HTML,CSS,JavaScript 共三部分代码。
源码学习
进入核心代码学习,我们先来看HTML中的核心代码。
<!-- 有个小院-兴趣编程 -->
<main>
<div class="set">
<h2>有个小院-计数器</h2>
<span class="value">0</span>
<div>
<button class="btn btn-danger decrease"><i class="fa fa-minus" aria-hidden="true"></i> </button>
<button class="btn btn-secondary reset">重置</button>
<button class="btn btn-success increase"><i class="fa fa-plus" aria-hidden="true"></i> </button>
</div>
</div>
</main>
然后我们来编写核心的JavaScript代码,设置数字初始值为0;通过querySelector获取HTML元素信息;使用forEach循环获得点击按钮情况,添加按钮点击事件,如果点击减少按钮则数字减少,如果点击增加按钮则数字增加,反之数字归0;设置HTML文本内容为数字,当数字大于0时,文本颜色为绿色;当数字小于0时,文本颜色为红色;当数字等于0时,文本颜色为黑色。
//有个小院-兴趣编程
let num=0;
const value=document.querySelector(".value");
const btns = document.querySelectorAll(".btn");
btns.forEach((btn)=>{
btn.addEventListener("click",(e)=>{
const styles=e.currentTarget.classList;
if(styles.contains("decrease")){
num--;
}else if(styles.contains("increase")){
num++;
}else{
num=0;
}
value.textContent=num;
if(num>0){
value.style.color="green";
}else if(num<0){
value.style.color="red";
}else{
value.style.color="black";
}
});
});
总结思考
学习点
1、foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。
2、contains() 方法用于判断字符串中是否包含指定的字符或字符串。
3、textContent 属性设置或者返回指定节点的文本内容。
问答
1、foreach 语句只适用于数组或对象集合中吗?
2、contains() 方法可以用于判断字符串中是否包含指定的字符串吗?
3、textContent 属性可以设置指定节点的文本内容吗?
关注我,跟着我每天学习一点点,让你不再枯燥,不再孤单..
全网可搜:小院里的霍大侠, 免费获取简单易懂的实战编程案例。编程/就业/副业/创业/资源。
私微信:huodaxia_xfeater
二维码: http://www.yougexiaoyuan.com/images/weixin_huodaxia.jpg
公众号:有个小院(微信公众号:yougexiaoyuan)
github:yougexiaoyuan (视频源码免费获取)
(部分素材来源于互联网,如有保护请联系作者)
教你用JavaScript实现计数器的更多相关文章
- Javascript实现计数器,定时警告和停止
<html> <head> <meta charset="utf-8"> <title>定时警告</title> < ...
- 5分钟教你学会JavaScript正则表达式
正则表达式在实际开发过程中和技术面试过程中的重要性不言而喻,本文仅仅只是教你如何在几分钟之类学会正则表达式,对于它的原理及运行机制不做介绍. 第一:什么是正则 正则表达式是一种用来描述一定数量文本的模 ...
- 从零开始手把手教你使用javascript+canvas开发一个塔防游戏01地图创建
项目演示 项目演示地址: 体验一下 项目源码: 项目源码 代码结构 本节做完效果 游戏主页面 index.html <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- 【转】同形的JavaScript:Web应用的未来
原文转自:http://blog.jobbole.com/51786/ 在Airbnb,这几年我们已经学习了很多了关于构建富应用的经验,从2011年通过做我们的网站手机版,我们开始研究single-p ...
- javascript针对DOM的应用
所谓针对DOM的应用.也就我这里只教大家用javascript操作页面中dom元素做交互.我相信可能大部分人来这里学javascript主要还是想用这个结合页面中的DOM元素做一些实际有用的交互效果. ...
- BOM模型中常用对象 定义计数器 网页跳转 网页前进后退
今天上午学了的BOM模型中常用对象,了解了一部分的属性 For循环的规律 外层循环控制行 内层循环控制列 <!doctype html> <html> <head> ...
- Isomorphic JavaScript: The Future of Web Apps(译)
Isomorp ...
- JavaScript 面试:什么是纯函数?
原文:Eric Elliott 译文:众成翻译 www.zcfy.cc/article/master-the-javascript-interview-what-is-a-pure-function ...
- 【机器学习Machine Learning】资料大全
昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】
转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...
随机推荐
- vue2双向绑定原理:深入响应式原理defineProperty、watcher、get、set
响应式是什么?Vue 最独特的特性之一- 就是我们在页面开发时,修改data值的时候,数据.视图页面需要变化的地方变化. 主要使用到哪些方法? 用 Object.defineProperty给watc ...
- DDD-领域驱动(二)-贫血模型与充血模型
贫血模型 一般来说 贫血模型:**一个类中只有属性或者成员变量,没有方法 **!例如 DbFirst 从数据库同步实体过来, -- 对于一个系统刚开始的时候会觉得这时候是最舒服的,但是如果后期系统需要 ...
- 华为交换机GVRP基础配置
GVRP基础配置 int G0/0/1 port link-type trunk 配置接口类型为trunk port trunk allow-pass vlan all 允许所有VLAN通过 int ...
- vulnhub靶场之RED: 1
准备: 攻击机:虚拟机kali.本机win10. 靶机:RED: 1,地址我这里设置的桥接,,下载地址:https://download.vulnhub.com/red/Red.ova,下载后直接Vi ...
- [Thread] 多线程顺序执行
Join 主线程join 启动线程t1,随后调用join,main线程需要等t1线程执行完毕后继续执行. public class MainJoin { static class MyThread i ...
- Linux实战笔记_CentOS7_格式化磁盘
fdisk -l #检查是否添加成功(添加一块磁盘并重启计算机后) fdisk /dev/sdb #格式化磁盘 mount /dev/sdb1 /opt #挂载到/opt目录 df -h #查看是否挂 ...
- iframe的简单使用
看人家写的真的是摸不着头脑.自己写.还是清楚 局部数据的刷新:可以使用ajax.这里只是简单的演示 只作:例子使用.简单演示页面跳转 a标签中target属性和iframe中的name对应.相当于将该 ...
- 基于数组或链表的学生信息管理系统(小学期C语言程序实训)
1.基于数组的学生信息管理系统 实验内容: 编写并调试程序,实现学校各专业班级学生信息的管理.定义学生信息的结构体类型,包括:学号.姓名.专业.班级.3门成绩. 实验要求: (1) main函数:以菜 ...
- Codeforces Round #828 (Div. 3) A-F
比赛链接 A 题解 知识点:贪心,模拟. 遇到没用过的数字就给个字母,遇到用过的数字就对照字母是否一致. 时间复杂度 \(O(n)\) 空间复杂度 \(O(n)\) 代码 #include <b ...
- js判断手机系统是android还是ios?
var u = navigator.userAgent; //识别各种浏览器 var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Ad ...