使用复选框 s1 和 s2 以及不同功能的交互式堆栈

2024-01-21

我正在尝试制作堆栈的工作模型,其中用户可以选择堆栈 s1 或 s2 并可以执行诸如推送和弹出之类的操作。

<html>
    <head>
        <title>Stack With Constructor </title>
    </head>
    <body>
        
        <div>
            
            
            <p id="p1">
                stack
            </p>
            <input type="checkbox" id="stack1" value="s1">s1
            <br>
            <input type="checkbox" id="stack2" value="s2">s2
            <br>
            <textarea id="tdisplay"></textarea>
            <textarea id="tpush"></textarea>
            <button onclick="doJob()">push</button>
            
            <button onclick="doJob1()">pop</button>
            <textarea id="tpop"></textarea>
        </div>
        
        <script>
             function myfunction() {
        if (document.getElementById("stack1").checked == true) {
            console.log('myFunction called!');
            s1 = new MyStack();
        }
        if (document.getElementById("stack2").checked == true) {
            s2 = new MyStack();
        }
    }
            function push(v) {
                if (this.st === 0) {
                    console.log("Stack Overflow");
                } else {
                    this.st = this.st - 1;
                    this.stk[this.st] = v;
                    document.getElementById("tdisplay").value=this.print();
                }
            }

            function pop() {
                if (this.st === 10) {
                    console.log("Stack Underflow");
                } else {
                    var temp = this.stk[this.st];
                    this.st = this.st + 1;
                    document.getElementById("tdisplay").value=this.print();  
                    return temp;
                }
            }

            function print() {
                console.log("Printing Stack");
                var str = "";//empty string
                for (var i = this.st ; i < 10; i++) {
                    console.log(this.stk[i]);
                    str+=this.stk[i]+'\n';//concatenate the value and a new line
                }
                return str;
            };

            function MyStack() {
                this.st = 10;
                this.stk = new Array(10);
                this.push = push;
                this.pop = pop;
                this.print = print;
            };

            var s1 = new MyStack();

            function doJob() {
                var x=document.getElementById("tpush").value;
                s1.push(x);
                
                document.getElementById("tpush").value="";
            }
            function doJob1(){
                var y=s1.pop();

                document.getElementById("tpop").value=y;
                              
            }
        </script>
    </body>

我不知道如何使用复选框方法。这意味着当我选择 s1 复选框时,它应该创建 s1 堆栈,我可以对其进行操作,与 s2 相同。

结果应该是交互式堆栈的正确浏览器功能,因此它可以像以下步骤一样工作:

用户选择s1或s2堆栈 如果他/她选择 s1,那么他们可以执行 s1 的所有操作。 用户也可以在s2之间切换并可以执行所有操作。 我在复选框工作时遇到问题。


我认为单选按钮会让你更幸运。如果 s1 和 s2 是单选按钮组,例如 <input type="radio" name="stack_select" id="stack1" value="s1">s1 <br> <input type="radio" name="stack_select" id="stack2" value="s2">s2

然后,您可以侦听一个函数何时发生更改,并让其他 ui 组件更新正确的选定堆栈。

对于您的情况,复选框的问题在于它们并不相互排斥,而且您似乎永远不想同时选择 s1 和 s2 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用复选框 s1 和 s2 以及不同功能的交互式堆栈 的相关文章

  • 如何在响应式设计中禁用缩放功能?

    在使用 iPad iPhone 和 或其他智能手机时 如何禁用响应式设计页面中的放大和缩小功能 有什么办法可以控制吗 创建 META 视口标签 并设置用户可扩展属性为 否 如下所示 更新的答案
  • JavaScript 设置滚动高度

    在 JavaScript 中 将一个元素的滚动高度设置为另一个元素的滚动高度的正确方法是什么 直接赋值没有效果 谢谢 格雷格 直接是不可能的 scrollHeight 是一个只读属性 包含元素内容的总高度 以像素为单位 如果有元素 A 并且
  • 空 JavaScript 数组的布尔值冲突

    谁能解释为什么以下两个陈述都评估为true false and 这个问题纯粹是出于对为什么会发生这种情况的好奇 而不是关于如何最好地测试数组是否为空 第一个 false The 运算符对其操作数进行类型转换 在这种情况下 两边都转换为 Nu
  • 按空格键后执行JS代码

    这是我的 JavaScript 代码 var changeIdValue function id value document getElementById id style height value document getElement
  • Jest/Typescript:Jest 和 Typescript 中的模拟类依赖项

    我有依赖于类 A 的类 B 我想测试类 B 的方法 该方法在内部调用类 A 的方法 现在 我想通过模拟类 A 对类 B 的方法进行单元测试 我的代码结构 class A getSomething return Something class
  • Angularjs 中的动态表单名称属性

    当动态创建 inputName 时 人们将如何使用 formName inputName valid
  • 带有透明边框的响应式箭头进度条

    我正在尝试构建一个进度条 如结帐中常见的那样 问题是 箭头之间的边界是透明的 整个事情应该是反应灵敏 到目前为止我已经明白了 http codepen io MrBamblele pen rVBeoz http codepen io MrB
  • 从文件中抓取随机行

    我不知道该怎么做 我应该从哪里开始 我用谷歌搜索了这个 但没有找到关于如何从文本文件中提取随机行的结果 我唯一发现的是https github com chrisinajar node rand line https github com
  • 我应该清理 Markdown 吗?

    对于我的帖子实体 我将 HTML 和 MARKDOWN 存储在数据库中 HTML 是从 MARKDOWN 转换而来 HTML 用于在页面上呈现 MARKDOWN 用于编辑功能 使用 WMD 我在存储到数据库之前清理 HTML 问题是 我也应
  • 在 React 中渲染来自 Firebase 的数据

    请帮助我渲染从 Firebase 实时数据库检索的数据 我成功从 Firebase 中以数组形式检索数据 下一步是显示数据 问题就从这里开始了 我想要显示的数据应该存储在 模块 状态 首先 它被设置为一个空数组 然后检索数据 通过 Coum
  • 包含菜单按钮的 Ag-grid 单元格

    我在我的项目中使用社区版本的 ag grid 我正在尝试在每一行的一个单元格中添加菜单按钮 单击菜单按钮时 应该会弹出菜单 其中包含编辑 删除 重命名选项 并且当单击菜单上的任何项目时 我需要触发具有行值的事件 我正在尝试创建一个将显示按钮
  • Google+ 风格的平铺照片库

    有没有人见过一个 javascript 库 它会生成一个照片库 类似于 Google 和现在的 Facebook 组织照片的方式 其中一些照片被裁剪 但所有照片都无缝地填充了一个空间 像这样的东西 我正在四处挖掘并发现了这个 虽然有点不同
  • 在函数字符串上使用 eval

    我在做 eval function console log Hello World 但这给出了错误 Uncaught SyntaxError Unexpected token 为什么这是错误的 The eval操作员期望Program作为输
  • NicEdit 数据不在 POST 中

    我确信我在这里错过了一些非常简单的东西 我已经搜索过 但似乎找不到答案 用这个简单的形式 我如何将 NicEdit 框中的内容发送到我的 HTTP POST 我得到的只是原始文本区域值而不是编辑后的版本 h2 Test Page h2
  • 检测 html 元素内的用户选择

    如何检测用户选择 用鼠标突出显示 是否在某个元素内 某个元素的子元素 Example div sdfsdf div some span content span div sdfsd div 伪代码 if window getSelectio
  • 如何使用Javascript统计通过ajax返回的
  • 的数量?
  • 我有一个 ajax 代码 它将列表项返回为 li one li li Two li 每次都会返回不同数量的 li 的 我想查一下数量 li li 它返回 如何使用 JavaScript 检查它 给你 returnedHTML find li
  • 将事件处理程序分配给带括号和不带括号的方法之间的区别

    假设您有以下内容 function doStuff code 2 种说法有什么区别 window onload doStuff window onload doStuff 两个语句都立即调用该方法 但如果我使用第一个语句 我可以将 onlo
  • 为什么我不能分配 const 但我可以控制台记录它?

    我做了一些java脚本练习 让几个链接按字母顺序排列 这是 HTML a href a is good a a href c is good a a href b is good a JavaScript const allhref doc
  • html 中的图像按钮

    我正在尝试获取一个带有图像的按钮 我见过类似下面的东西 但它们不会为您提供普通按钮所具有的按钮按下 释放效果
  • 我可以更改 LongListMultiSelector 中的复选框颜色吗? WP8

    我需要更改 Windows Phone 8 中 LongListMultiSelector 复选框的颜色 因为我的背景是白色 这可能吗 Thanks 为此 您必须首先通过在 Visual Studio 中的文档大纲中右键单击长列表选择器来编

随机推荐