Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 验证var是否存在并更新它_Javascript_Dom - Fatal编程技术网

Javascript 验证var是否存在并更新它

Javascript 验证var是否存在并更新它,javascript,dom,Javascript,Dom,我有一个咖啡机,我想如果胶囊已经被添加到“totcaps”变量,然后添加更多 简言之,我希望如果以前从未添加过胶囊,那么就添加它们,否则就添加到现有的胶囊中 /*餐厅信息/错误*/ 函数writemes(节点,mess){ newmess=document.createTextNode(mess); replaceChild(newmes,node.firstChild); } /*加帽子*/ 函数Add(){ 试一试{ /*默认无消息*/ 可写性(nodomes,“); 胶囊=编号(nod

我有一个咖啡机,我想如果胶囊已经被添加到“totcaps”变量,然后添加更多

简言之,我希望如果以前从未添加过胶囊,那么就添加它们,否则就添加到现有的胶囊中


/*餐厅信息/错误*/
函数writemes(节点,mess){
newmess=document.createTextNode(mess);
replaceChild(newmes,node.firstChild);
}
/*加帽子*/
函数Add(){
试一试{
/*默认无消息*/
可写性(nodomes,“);
胶囊=编号(nodoCapsule.value);
/*空场*/
if(nodoCapsule.value==“”| | capsule==0){
写字数(nodomes,“插入大写字母数”);
返回;
}否则
/*伊斯南*/
if(伊斯南(胶囊)){
可写性(nodomes,“插入有效”);
返回;
}
else/*创建并更新(如果已存在)*/
如果(总量===“”){
totcaps=数量(nodoCapsule.value);
writemes(nodomes,“您插入:”+nodoCapsule.value+“caps”);
}
否则{
totcaps=数量(totcaps)+数量(nodoCapsule.value);
WriteMessages(nodoMess,您插入:“+totcaps+”caps”);
}
}捕获(e){
警报(“添加”+e);
}
}
/*全球的*/
无负载;
结节囊;
风险价值总额;
/*核心功能*/
函数gestoreLoad(){
试一试{
/*拜访*/
noload=document.getElementById(“添加”);
nodoCapsule=document.getElementById(“caps”);
nodoMess=document.getElementById(“MessinFerr”);
/*事件*/
noload.onclick=Add;
/*空文本节点*/
nodoCapsule.value=“”;
/*空话*/
var TextNode=document.createTextNode(“”);
追加子节点(TextNode);
}捕获(e){
警报(“gestoreLoad”+e);
}
}
/*加载代码*/
window.onload=gestoreLoad;
分配器





您正在检查totcap是否为空,如下所示
if(totcap==“”){

这意味着您正在检查totcap是否为空字符串。您可以检查该值是否为falsy,如下所示:
if(!totcap)
,但请记住,如果该值为0,则该值也将被视为falsy

在代码中,将
==”
更改为
==undefined
,它将正常工作


您正在检查totcap是否为空,如下所示
if(totcap==“”){

这意味着您正在检查totcap是否为空字符串。您可以检查该值是否为falsy,如下所示:
if(!totcap)
,但请记住,如果该值为0,则该值也将被视为falsy

在代码中,将
==”
更改为
==undefined
,它将正常工作


如果使用
else让逻辑变得更紧凑,您将从中受益。您未定义的错误来自于您在实例化变量之前使用了变量。我假设您想在那里使用
totcap
。我还简化了您正在做的其他重复操作

原因!totcaps不能按您的要求工作(如Salmin的回答中所述),是因为
标记检查
“”
null
未定义的
false
以及数字
0
NaN
。由于您只想检查
NaN
,因此可以这样做,但可以跳过三元组
=
,以避免显式的类型检查

/*全局*/
无负载;
结节囊;
风险价值总额;
/*餐厅信息/错误*/
函数writemes(节点,mess){
newmess=document.createTextNode(mess);
replaceChild(newmes,node.firstChild);
}
/*加帽子*/
函数Add(){
试一试{
/*默认无消息*/
可写性(nodomes,“);
let胶囊=编号(nodoCapsule.value);
让符号=胶囊<0?“”:“+”;
/*空场*/
如果(胶囊==“”| |胶囊==0){
写字数(nodomes,“插入大写字母数”);
}否则,如果(isNaN(胶囊)){
/*伊斯南*/
可写性(nodomes,“插入有效”);
}else if(totcaps==null){
/*创造*/
totcaps=胶囊;
writemes(nodomes,“您插入:“+胶囊+”大写”);
}否则{
/*如果已经存在,则更新*/
totcaps+=胶囊;
writemes(nodomes,插入:“+totcaps+”caps.(“+sign+capsule+”);
}
}捕获(e){
警报(“添加”+e);
}
}
/*核心功能*/
函数gestoreLoad(){
试一试{
/*拜访*/
noload=document.getElementById(“添加”);
nodoCapsule=document.getElementById(“caps”);
nodoMess=document.getElementById(“MessinFerr”);
/*事件*/
noload.onclick=Add;
/*空文本节点*/
nodoCapsule.value=“”;
/*空话*/
var TextNode=document.createTextNode(“”);
追加子节点(TextNode);
}捕获(e){
警报(“gestoreLoad”+e);
}
}
/*加载代码*/
window.onload=gestoreLoad;

分配器





如果
让逻辑变得更紧凑,那么使用
else会让您受益匪浅。未定义的错误来自于您在实例化变量之前使用了变量。我假设您想在那里使用
totcap
。我还简化了您正在做的其他重复操作

原因!totcaps不能按您所希望的那样工作(如Salmin的回答中所述),是因为
标记检查
null
未定义的
false
以及数字
0
Na