使用输入框而不是弹出功能
Using the input box instead of pop function
如何使用输入框而不是提示此代码?代码是这里。
一旦我点击链接;弹出一个提示,要求输入一个数字或Q退出。我如何将其更改为输入框?
function Stack() {
var items = [];
this.push = function(element){
items.push(element);
};
this.pop = function(){
return items.pop();
};
this.peek = function(){
return items[items.length-1];
};
this.isEmpty = function(){
return items.length == 0;
};
this.size = function(){
return items.length;
};
this.clear = function(){
items = [];
};
this.print = function(){
alert("Stack Elements are:"+items.toString());
};
}
声明堆栈对象:
var stack = new Stack();
while(1)
{
var element = prompt("Enter stack element,(q or Q to exit)", "");
if(element == 'q' || element =='Q')
{
break;
}
else
{
if(element=='*'
|| element=='+' || element=='-' || element=='/')
{
//Check if stack is empty
if(stack.isEmpty() || stack.size<2 )
{
alert("Invalid Operation, Stack is empty or size is less than 2");
}
else
{
var op1 = stack.pop();
var op2 = stack.pop();
if(element=='*')
{
var res = op1 * op2;
}
else if(element=='+')
{
var res = op1 + op2;
}
else if(element=='-')
{
var res = op1 - op2;
}
else if(element=='/')
{
var res = op1 / op2;
}
stack.push(res);
stack.print();
}
}
else
{
stack.push(element);
stack.print();
}
}
}
尝试以下示例:
小提琴
var stack = new Stack();
function Stack() {
var items = [];
this.push = function(element) {
items.push(element);
};
this.pop = function() {
return items.pop();
};
this.peek = function() {
return items[items.length - 1];
};
this.isEmpty = function() {
return items.length == 0;
};
this.size = function() {
return items.length;
};
this.clear = function() {
items = [];
};
this.print = function() {
theList.options.length = 0;
for (var i = 0; i < items.length; i++) {
var theOption = new Option(items[i]);
theList.options[theList.options.length] = theOption;
}
};
}
function pushStack(newVal) {
if (newVal == '*' || newVal == '+' || newVal == '-' || newVal == '/') {
//Check if stack is empty
if (stack.isEmpty() || stack.size < 2) {
alert("Invalid Operation, Stack is empty or size is less than 2");
} else {
var op1 = stack.pop();
var op2 = stack.pop();
if (newVal == '*') {
var res = op1 * op2;
} else if (newVal == '+') {
var res = op1 + op2;
} else if (newVal == '-') {
var res = op1 - op2;
} else if (newVal == '/') {
var res = op1 / op2;
}
stack.push(res);
}
} else {
stack.push(newVal);
}
}
function popStack() {
var popVal = stack.pop();
if (popVal == undefined)
return "Empty stack!";
else
return popVal;
}
function showStack() {
stack.print();
}
<FORM>
<INPUT type="text" name="txtPush" id="txtPush" />
<INPUT type=button value="Push" onClick='pushStack(txtPush.value); txtPush.value=""; showStack(theList);' />
<SELECT name="theList" id="theList" size=12>
<OPTION>Displays the current state of the stack!</OPTION>
</SELECT>
</FORM>
相关文章:
- 主体单击删除功能上的输入框宽度
- JQuery使用相同的功能自动完成各种输入文本
- jQuery自动完成功能不适用于多个文本输入
- 需要URL模板占位符查找和替换功能的输入
- jQuery:在整个文档上触发按键功能,但不在输入和文本区域内
- GAS - 等到用户输入数据后,功能才会继续
- 组合功能以使用 Jquery 在一组单选按钮中显示输入字段和单选按钮
- 如何在输入下从数据列表中选择一个选项后立即触发功能
- JSTREE - 重命名功能问题(单击重命名后,节点上的文本输入不接受更改)
- 如何将我的 Google 地图功能从自动查找我的位置更改为让我输入一个位置
- 当输入[范围]值更改/拇指拖动时触发功能
- 使用输入框而不是弹出功能
- 用户更改输入值(主干.js)时的触发功能
- 无法触发提前输入功能
- 有没有办法显示/使用用户输入来执行各种功能,例如创建表
- 如何使鼠标输入功能具有淡入淡出效果并保持在那里
- IE 8,功能无法链接到输入按钮
- 触发功能输入 - 茉莉花测试
- 你能有效地重置功能输入顺序吗
- 3功能1输入