Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使“计算器”按钮的值在单击“计算器”按钮时显示在显示器上?

如何使“计算器”按钮的值在单击“计算器”按钮时显示在显示器上?
EN

Stack Overflow用户
提问于 2018-10-04 10:07:03
回答 1查看 926关注 0票数 2

这是我在这里的第一篇文章,所以如果我搞砸了我的邮件格式,我会提前道歉。

我正在做CareerFoundry网络开发课程,我们被要求使用javascript和jQuery编写一个计算器。我对编码完全陌生,这对我来说是非常令人困惑的。到目前为止,我已经成功地使用HTML、CSS和Javascript创建和样式了我的计算器,现在我需要使它具有功能。我在这一步,我想点击任何计算器按钮,并使其价值出现在显示div。我不知道怎么做.我试着使用附加方法,但是它不能用我编码的方式.另外,你能给我什么提示,如何在解决这一步骤后继续吗?谢谢!

HTML

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Calculator</title>
    <link rel="stylesheet" type="text/css" href="css/styles.css">
    <link rel="stylesheet" type="text/css" href="css/normalize.css">
  </head>
  <body>
    <div id="calculator">
      <div id="display"></div>
      <div class="row" id="interface"></div>
      <div class="button" id="CE"><p>CE</p></div>
    </div><!-- end calculator -->

    <script src="https://code.jquery.com/jquery-3.3.1.min.js" 
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" 
crossorigin="anonymous"></script>
    <script src="js/interfaceItems.js"></script>
    <script src="js/scripts.js"></script>
  </body>
</html>

CSS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
body {
  font-family: "Century Gothic", Arial, Lucida, Tahoma, Verdana, sans-serif;
  font-size: 2em;
}

#calculator {
  position: fixed;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 320px;
  border: 1px solid grey;
  border-radius: 10px;
  background-color: #404040;
  box-shadow: 5px 10px 20px;
}

#display {
  display: flex;
  justify-content: center;
  text-align: right;
  height: 73px;
  width: 100%;
  margin: 10px 10px 5px 10px;
  border: 1px solid lightgrey;
  border-radius: 5px;
  padding: 5px;
  background-color: #fff;
}

.row {
  display: grid;
  grid-template-columns: repeat(4, auto);
  grid-gap: 2.5px;
  justify-content: center;
  margin: 0 10px 2.5px 10px;
}

.button {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 73px;
  height: 73px;
  border-radius: 5px;
  background-color: skyblue;
}

#CE {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  height: 73px;
  border-radius: 5px;
  margin: 0 10px 10px 10px;
  background-color: skyblue;

}

.button:hover,
#CE:hover {
  cursor: pointer;
  background-color: #fff;
}

.button:active,
#CE:active {
  transform: scale(0.98,0.98);
  box-shadow: 1px 1px 5px;
}

JS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function(){
  for(var i = 0; i < interfaceItems.length; ++i) {
    $('#interface').append('\
      <div class="button">\
        <p>' + interfaceItems[i].text + '</p>\
      </div>\
    ');
    $('#interface .button', this).on('click', function() {
      $('#display').append('<p>' + interfaceItems[i].value + '</p>');
    });
  };
});

var interfaceItems = [
    {
        text: '7',
        value: 7
    },
    {
        text: '8',
        value: 8
    },
    {
        text: '9',
        value: 9
    },
    {
        text: '÷',
        value: '/'
    },
    {
        text: '4',
        value: 4
    },
    {
        text: '5',
        value: 5
    },
    {
        text: '6',
        value: 6
    },
    {
        text: '×',
        value: '*'
    },
    {
        text: '1',
        value: 1
    },
    {
        text: '2',
        value: 2
    },
    {
        text: '3',
        value: 3
    },
    {
        text: '−',
        value: '-'
    },
    {
        text: '0',
        value: 0
    },
    {
        text: '.',
        value: '.'
    },
    {
        text: '=',
        value: '='
    },
    {
        text: '+',
        value: '+'
    },
];
EN

回答 1

Stack Overflow用户

发布于 2018-10-04 10:21:10

这个问题的出现是因为一个范围问题/变量问题。

您可以在代码中的这一行获得Uncaught TypeError: Cannot read property 'value' of undefined

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$('#display').append('<p>' + interfaceItems[i].value + '</p>');

如果在这一行之前添加控制台日志以获得i的值--您会看到i的值是16。为什么?因为在文档就绪函数上有一个for循环。

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

在这个循环的末尾,您将i的值设置为16。因为javascript使用了0个索引,所以即使在interfaceItems数组中有16个元素--第16个索引是未定义的(它只从0到15)。

为了解决这个问题,我想你想摆脱在onclick函数中使用i的问题。你可以用这样的方法

this.innerText.trim()获取项目的文本,然后使用该文本使其出现在计算器中。

您将不得不创建一个新的所以问题,以帮助您的计算机应用程序的其他部分。我希望这解决了你的问题,为什么你的onclick功能不起作用。使用控制台和添加console.log语句来调试javascript代码是非常有用的,并将节省将来的行程。祝您顺利完成计算器应用程序!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52652947

复制
相关文章
在写计算器时学到的
stack模版类的定义需要两个模版参数,一个是元素类型,另一个是容器类型,但只有元素类型是必要的,在不指定容器类型的情况下,默认deque为容器类型
2018/09/03
4550
自己在Qt上做的辣鸡计算器
#include "widget.h" #include "ui_widget.h" #include <QPushButton> #include <QDebug> #include <stack> using namespace std; bool cmopareFun(QChar l,QChar r) { if(r == '*' || r == '/') { if(l == '*' || r== '/') return false;
_gongluck
2018/03/09
1.3K0
选择篇(039)-单击按钮时event.target是什么?
导致事件的最深嵌套元素是事件的目标。你可以通过event.stopPropagation停止冒泡
齐丶先丶森
2022/05/12
1.6K0
Excel实战技巧65: 制作漂亮的用户窗体按钮——当鼠标移动到按钮上时高亮显示
在很多场合,我们都能看到这样的效果,当鼠标移动到某个元素上面时,该元素会变成另外一种颜色,达到强调的效果。下面,我们来实现当鼠标移动到用户窗体按钮上时,会使用颜色高亮显示,让用户窗体更生动,如下图1所示。
fanjy
2019/12/04
8.6K0
HTML单击按钮弹出悬浮窗+页面遮罩
<meta charset="utf-8" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
用户7718188
2021/10/08
15.8K1
类模块应用示例:获取单击的命令按钮名称
这个示例来源于ozgrid.com,有兴趣的朋友可以研究。在用户窗体上共有24个命令按钮,如下图1所示。
fanjy
2023/10/04
3140
类模块应用示例:获取单击的命令按钮名称
Android之按钮点击事件(单击、双击、长按等)
在布局文件中添加按钮点击事件 1、在xml文件中 为 Button 添加android:onclick属性
程思扬
2023/07/24
2.4K0
c语言设计计算器-Qt学习笔记:设计一个计算器(二)
  前面一节介绍了用Qt 设计计算器的界面,这节将总结一下如何让界面可以运行,如何设计计算器的功能部分。将从以下几方面讲述,计算器的文本编辑控件,可以发射字符的按钮,以及负责处理计算和创建UI的计算器类。项目基于VS2019c语言设计计算器,文件结构如下。这里的结构目录只是一个虚拟的目录,实际每个文件存放的位置需要自己规划。
宜轩
2022/12/26
8200
freemarker文件下,bootstrap 点击按钮,切换按钮上的图标
fa标签在bootstrap封装的原形是:使用一个单<i>并增加对应的CSS类名,例: <i class="fa fa-search"></i>
全栈程序员站长
2022/06/30
3.5K0
PyQt5 技巧篇-按钮竖排显示方法,Qt Designer设置按钮竖排显示。
其实很简单,只要设置按钮显示的文字每个字后面加一个\n换行符,并把按钮拉高就好了。 例:"上\n一\n页"
小蓝枣
2020/09/23
1.7K0
计算器界面布局JAVA_用JAVA写的一个简单的图形界面计算器
/*** Created by YunFeng on 2014/12/6 0009.
用户7886150
2021/04/29
1.4K0
【前端JQ】使用js或jquery使button按钮变为不可用状态,并改变button上的值。
使按钮变为不可用或可用状态只需要设置按纽的disabled属性为true即为不可用状态,flase即为可用状态。
睿儿网络郝刚
2020/09/30
6.6K0
在Power BI中设置动图按钮的做法
在Power BI中要实现按钮变色效果,可以使用按钮工具。 1. 插入按钮 2. 设置什么状态下显示颜色 可以设置悬停或者按下的动作时显示颜色,可以分别设置3种状态下的颜色 3. 颜色设置 可以直接设置,也可以通过条件及度量值设置 当然除了填充的颜色,还可以设置文本状态 如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。
逍遥之
2020/03/24
9.1K0
在Power BI中设置动图按钮的做法
鼠标悬浮button按钮显示tip
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <style> * { margin: 0px; padding: 0px; } body { text-align: center;
西柚dzh
2022/06/09
2.6K0
WPF 点击按钮时更改按钮样式界面效果的 XAML 实现方法
在 WPF 中按钮 Button 将会吃掉路由事件,此时的 EventTrigger 如果通过 RoutedEvent 是 MouseLeftButtonDown 那么将会拿不到路由事件,也就触发不了,因此样式将不会变更。简单的解决方法就是通过 VisualStateManager 配合 VisualState 来实现
林德熙
2020/08/31
4.3K0
在 Flutter 中创建可拖动的浮动操作按钮[Flutter专题15]
Flutter 允许您使用FloatingActionButton小部件添加浮动操作按钮。但是,它不允许您拖动按钮。如果你想让它可拖动怎么办。本教程有一个示例,说明您需要做什么才能创建浮动操作按钮,只要它位于父小部件内,就可以将其拖动到屏幕周围的任何位置。
徐建国
2021/12/07
5.7K0
在 Flutter 中创建可拖动的浮动操作按钮[Flutter专题15]
【HTML】HTML 表单 ② ( 按钮表单 | 普通按钮 | 提交按钮 | 重置按钮 | 图片按钮 | 文件域 )
将 <input /> 标签 的 type 属性设置为 button , 就可以将该 表单组件 设置为 普通按钮 类型表单 ;
韩曙亮
2023/03/30
8.2K0
【HTML】HTML 表单 ② ( 按钮表单 | 普通按钮 | 提交按钮 | 重置按钮 | 图片按钮 | 文件域 )
Js如何防止页面后退(使浏览器后退按钮失效)[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164194.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/16
4.4K0
Js如何防止页面后退(使浏览器后退按钮失效)[通俗易懂]
iOS 统一设置返回按钮图片 返回按钮标题不显示
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIAppli
iOSDevLog
2018/07/19
2.2K0
点击加载更多

相似问题

如何使计算器在显示中单击按钮时显示每个按钮的值?

12

Android计算器在单击按钮时崩溃

10

使所有清除按钮在计算器上工作

14

如何使按钮在单击时显示窗口?

11

在android上设置计算器按钮的布局

41
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文