Javascript 如何在HTML中创建递减变量的按钮?

Javascript 如何在HTML中创建递减变量的按钮?,javascript,html,Javascript,Html,每次单击按钮时,我都试图将可变库存减少1,但它不起作用。无论我点击按钮多少次,网站上的值都保持不变: var股票=10; 函数myFunction(){ document.getElementById(“myText”).innerHTML=Stock; } 函数按钮函数(){ 股票--; } 点击我 “股票价值为:” 我希望它能帮助你。您必须调用myFunction以在click handler ButtonFunction()中的myText id中显示Stock变量的新值 var股

每次单击按钮时,我都试图将可变库存减少1,但它不起作用。无论我点击按钮多少次,网站上的值都保持不变:

var股票=10;
函数myFunction(){
document.getElementById(“myText”).innerHTML=Stock;
}
函数按钮函数(){
股票--;
}

点击我
“股票价值为:”

我希望它能帮助你。您必须调用myFunction以在click handler ButtonFunction()中的myText id中显示Stock变量的新值


var股票=10;
函数myFunction(){
document.getElementById(“myText”).innerHTML=Stock;
}
函数按钮函数(){
股票--;
myFunction();
}
点击我
“股票价值为:”

看起来变量正在递减,但span的内部文本随后不会更新。
尝试在每次单击后调用myfunction();)

您的函数仅更改
Stock
变量的值

它不会更改
document.getElementById(“myText”).innerHTML的值,只有在调用
myFunction
时才会更改该值(这是您从未执行过的操作)


您需要:

  • 加载文档时实际调用
    myFunction
  • 无论何时更改变量,请再次调用它
let stock=10;
函数myFunction(){
document.getElementById(“myText”).innerHTML=stock;
}
函数按钮函数(){
股票--;
myFunction();
}
document.querySelector(“按钮”).addEventListener(“单击”,按钮功能);
addEventListener(“加载”,myFunction)
点击我

股票的值为:“
无论何时单击“单击我”按钮,都将调用ButtonFunction()。和
document.getElementById(“myText”)
get找到id为myText的html元素并将其自身引用到html元素
innerHTML
允许您将html代码放入其中,
innerText
允许您将文本放入id为
myText
的html元素中


var股票=10;
函数按钮函数(){
股票--;
document.getElementById(“myText”).innerHTML=Stock;
}
点击我
“股票价值为:”

这里发生了很多事情。我认为你最感兴趣的那个问题已经由昆汀回答了。然而,与变量命名约定相比,其他一些仍然是(我认为)更好的习惯

  • 内联事件处理程序=错误。可删除或补充的事件=良好。对most控件使用attachEventListener
  • 名称不提供任何内容的函数令人痛苦。当名称是描述性的时,它们是最有用的
  • 更改和显示变量的函数可能是陷阱。通常最好使用第三个函数,该函数调用一个函数来更改某些内容,同时调用另一个函数来显示该内容
  • 还有另一种方法:

    window.addEventListener('load',onload,false);
    功能已加载(evt){
    displayStock();
    document.querySelector('button')。addEventListener('click',onButtonPressed,false);
    }
    var单位股票=10;
    函数displayStock(){
    document.getElementById('myText').textContent=unitsOfStock;
    如果(单位库存==1)
    document.getElementById('复数').textContent='';
    其他的
    document.getElementById('复数').textContent='s';
    }
    函数decreaseStock(){
    单位股票--;
    }
    函数onButtonPressed(){
    减少库存();
    displayStock();
    }
    点击我
    股票价值为:单位
    var股票=10;
    函数myFunction(){
    document.getElementById(“myText”).innerHTML=Stock;
    }
    函数按钮函数(){
    股票--;
    myFunction();
    }
    
    点击我
    “股票价值为:”
    
    myFunction()在body onload之后永远不会被调用,因此#myText永远不会被更新。在myFunction的顶部添加一个console.log()行,然后在browser developer tools中检查控制台,您将看到更多发生的事情。或者使用浏览器开发工具JS debugger.guys谢谢你的帮助,但我需要先显示股票的初始价值,然后每当我单击按钮时,它就会递减。你必须说出你到底想要什么!将描述放在答案上,以避免被其他人否决