js点击数字减一,如果数字减为0则隐藏

JavaScript011

js点击数字减一,如果数字减为0则隐藏,第1张

getnumber[i]是onclick函数外面的变量,进来函数就没了,改成this即可。下面是我做了修改的代码:

function clicknumber(){

var getnumber=document.getElementById("test").getElementsByTagName("ul")[0].getElementsByTagName("li")

for( var i=0i<getnumber.lengthi++){

getnumber[i].onclick = function(){

var strtonu = parseInt(this.innerHTML.trim())-1 //这里改了this,数字直接做减一处理,再判断

if(strtonu>0){

this.innerHTML=String(strtonu) //这里改了this

}else{//strtonum为0即隐藏,你原来的代码还会显示0

this.style.display="none" //这里改了this

}

}

}

}

方法一:元素.style.display = "none",设置后元素不占位置

方法二:元素.style.visibility = "hidden",设置后元素还占原先的位置

方法三:元素.style.opacity = 0, 完全透明,还占位置

按位“非”运算符 (~)

对一个表达式执行按位“非”(取反)。

result = ~ expression

参数

result

任何变量。

expression

任何表达式。

说明

所有一元运算符,如 ~ 运算符,以如下规则来求表达式的值:

如果将它用于 undefined 或 null 表达式,则产生一个运行时错误。

对象被转换成字符串。

如果可能,字符串被转换为数字。如果不能,则产生一个运行时错误。

Boolean 值被当作数字(如果是 false 则为 0,如果是 true 则为 1)。

用该运算符来生成数字。

~ 运算符查看表达式的二进制表示法的值,并执行按位非操作。该操作的结果如下所示:

0101 (expression)

----

1010 (result)

表达式中的任何一位为 1,则在结果中相应位变为 0。表达式中的任何一位为 0,则在结果中相应位变为 1。