js案例:1.简单计算器

目录

一.效果图

二.实现思路 

整体思路 ​

1.关键是dom操作 ​  

2.设置点击事件 

3.数据类型的隐式转换和赋值

三.完整代码 


一.效果图

 

二.实现思路 

整体思路 

1.关键是dom操作 

通过 document.getElementById('id') 获取html中的dom元素

每一个html标签都是一个对象,称为dom对象,每一个标签的属性也是一个对象的属性

设置对象属性的值 obj.属性值 = 'aa'; 获取对象属性的值 obj.属性名

每一个html标签都有style标签,因此可以使用js 操作style,’

如果设置stylr属性,则给标签行间添加一个style属性

2.设置点击事件 

//  给按钮设置点击事件 cum是按钮 ,设置点击事件会用到一些函数的内容

    cum.onclick = function () {

}

3.数据类型的隐式转换和赋值 

//使用隐式转换- ,把获取的数值转化为number类型,不转换默认是string字符串类型,无法进行下一步运算

let v1 = su1.value-0;

let v2 = su2.value-0;

//使用if语句判断选择的运算符号,并把运算结果赋值给相关的输出框

// 获取运算符

        let actVal = act.value;

        if (actVal == '+') {

            su3.value = v1 + v2;

        }

三.完整代码 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>练习</title>
</head>
<body><h2>换算</h2><input type="number" name="" id="curry" value=""><button id="bth">计算</button><h2>计算器</h2><input type="number" value="" id="su1"><select name="" id="act"><option value="+">+</option><option value="-">-</option><option value="*">x</option><option value="/">÷</option></select><input type="number" value="" id="su2"><button id="eq">=</button><input type="number" value="" id="su3"></body>
</html>
<script>//获取输入人民币的inputlet rmd = document.getElementById('curry');//获取点击计算的按钮let cum = document.getElementById('bth');console.log(rmd.value);let v0 = rmd.value - 0;//  给按钮设置点击事件cum.onclick = function () {//从新获取用户输入的值,并且隐式转化为number类型let v1 = rmd.value-0;//100的张数let num1 = parseInt(v1/100);//    出去100元剩余的金额 ,456 余数为56,查看余数56中有// 多少张50面值let yu1 = v1%100;// 50的张数let num2 = parseInt(yu1/50);let yu2 = yu1%50;let num3 = parseInt(yu2/20);let yu3 = yu2%20;let num4 = parseInt(yu3/10);let yu4 = yu3%10;let num5 = parseInt(yu3/5);let yu5 = yu4%5;alert(num1 +'张100元'+num2+'张50元'+ num3+'张20元'+ num4+'张10元'+ num5+'张5元'+ yu5+'张1元');}// 获取dom元素let su1 = document.getElementById('su1');let su2 = document.getElementById('su2');let su3 = document.getElementById('su3');let act = document.getElementById('act');let eq = document.getElementById('eq');// 点击等号eq.onclick = function () {let v1 = su1.value-0;let v2 = su2.value-0;// 获取运算符let actVal = act.value;if (actVal == '+') {su3.value = v1 + v2;}if (actVal == '-') {su3.value = v1 - v2;}if (actVal == '*') {su3.value = v1 * v2;}if (actVal == '/') {su3.value = v1 / v2;}};</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/66671.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【小练习】交互式网格自定义增删改错误记录及解决(进行中)

经过之前的学习&#xff0c;已经能创建简单的交互式网格并设置自定义增删改按钮&#xff0c;但是实现上还是存在一些问题&#xff0c;来完善优化一下。 首先是修改&#xff0c;正常修改都会弹出修改框&#xff0c;里面是之前存储的信息&#xff0c;根据实际需要对其进行修改&a…

springboot国际化

springboot国际化 不需要引入额外的jar包 参考&#xff1a;https://zhuanlan.zhihu.com/p/551605839 1.rources要创建Resource Bundle 2.yml配置中引入Resource Bundle 引入Resource Bundle spring:messages:encoding: UTF-8basename: i18n/messages_common3.创建国际化工具…

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制参数 之前搭建ossrs服务&#xff0c;可以查看&#xff1a;https://blog.csdn.net/gloryFlow/article/details/132257196 之前实现iOS端调用ossrs音视频通话&#xff0c;可以查看&#xff1a;https://blog.csdn.net/gloryFlo…

一个概率论例题引发的思考

浙江大学版《概率论与数理统计》一书&#xff0c;第13章第1节例2&#xff1a; 这个解释和模型比较简单易懂。 接下来&#xff0c;第13章第2节的例2也跟此模型相关&#xff1a; 在我自己的理解中&#xff0c;此题的解法跟上一个题目一样&#xff0c;其概率如下面的二维矩阵&a…

61. 旋转链表

61. 旋转链表 题目-中等难度示例1. 快慢指针找到分割位置2. 连成环后截断 题目-中等难度 相关企业 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出…

STM32基于CubeIDE和HAL库 基础入门学习笔记:蓝牙 WIFI STM32连接阿里云

文章目录&#xff1a; 一&#xff1a;蓝牙模块 1.蓝牙模块透传收发测试程序 bt.h bt.c usart.c main.c 2.蓝牙模块AT指令发送与回复判断程序 usart.c main.c 3.蓝牙模块APP按钮控制应用程序 main.c 4.蓝牙模块APP专业调试测试程序&#xff08;操控界面&#xff1a;按…

面试热题(合并K个升序链表)

给定一个链表数组&#xff0c;每个链表都已经按升序排列。 请将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 输入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 输出&#xff1a;[1,1,2,3,4,4,5,6] 解释&#xff1a;链表数组如下&#xff1a; [1->4->5,1…

【第二阶段】kotlin函数引用

针对上篇传入函数参数我们也可以重新定义一个函数&#xff0c;然后在main中调用时传入函数对象 lambda属于函数类型的对象&#xff0c;需要把普通函数变成函数类型的对象&#xff08;函数引用&#xff09;&#xff0c;使用“&#xff1a;&#xff1a;” /*** You can edit, ru…

【EI/SCOPUS征稿】第九届材料加工与制造工程国际学术会议(ICMPME 2023)

第九届材料加工与制造工程国际学术会议 2023 9th International Conference on Materials Processing and Manufacturing Engineering (ICMPME 2023) 第九届材料加工与制造工程国际学术会议(ICMPME 2023)定于2023年10月13-15日在中国南昌隆重举行。会议主要围绕“材料加工”、…

理解软件行业职位的职责

对于职位的一些个人看法 ....... 目录 1.初级程序员&#xff08;PG &#xff09; 2.中级程序员&#xff08;SE&#xff09; 3. 高级程序员&#xff08;SSE&#xff09; 4.技术经理&#xff08;TL&#xff09; 5.技术总监&#xff08;VP&#xff09; 6. 首席技术官&#xf…

Mac 卸载appium

安装了最新版的appium 2.0.1,使用中各种问题&#xff0c;卡顿....,最终决定回退的。记录下卸载的过程 1.打开终端应用程序 2.卸载全局安装的 Appium 运行以下命令以卸载全局安装的 Appium&#xff1a; npm uninstall -g appium 出现报错&#xff1a;Error: EACCES: permiss…

[保研/考研机试] KY135 又一版 A+B 浙江大学复试上机题 C++实现

题目链接&#xff1a; KY135 又一版 AB https://www.nowcoder.com/share/jump/437195121691736185698 描述 输入两个不超过整型定义的非负10进制整数A和B(<231-1)&#xff0c;输出AB的m (1 < m <10)进制数。 输入描述&#xff1a; 输入格式&#xff1a;测试输入包…