你下面改成的是因为你之付值过去而已。根本没对对应的进行ID的显示隐藏进行执行 在if完后加多条document.getElementById("t"+num).style.display=flag; 不加的话就=赋值给flag,但没运用flag的值<script type="text/javascript"> function changeimg(num){ flag = document.getElementById("t"+num).style.display; if(flag == "none"){ flag = "block"; }else{ flag = "none"; } document.getElementById("t"+num).style.display=flag; } </script>
你的代码没有改变他的样式 <script type="text/javascript"> function changeimg(num){ var d=document.getElementById("t"+num).style; d.display=d.display=='none'?'block':'none' } </script>
在if完后加多条document.getElementById("t"+num).style.display=flag;
不加的话就=赋值给flag,但没运用flag的值<script type="text/javascript">
function changeimg(num){
flag = document.getElementById("t"+num).style.display;
if(flag == "none"){
flag = "block";
}else{
flag = "none";
}
document.getElementById("t"+num).style.display=flag;
}
</script>
<script type="text/javascript">
function changeimg(num){
var d=document.getElementById("t"+num).style;
d.display=d.display=='none'?'block':'none'
}
</script>
得到的是值,而不是对象
所以对 flag 的改变不会作用到源对象
缩略写法应是这样的function changeimg(num){
with(document.getElementById("t"+num).style) {
if(display == "none"){
display = "block";
}else{
display = "none";
}
}
}
document.getElementById("t"+num).style.display在这个里面style前面的是dom节点。
style后面那个display是样式下面一个属性。你应该将显示隐藏赋给对象document.getElementById("t"+num).style.display这个上
而你下面那个flag仅仅是一个值不是对象所以不行了
var style = document.getElementById("t"+num).style;
if(style.display==='none'){
style.display = 'block';
}else{
style.display = 'none';
}
}