javascript方法
function d(name){
var str = document.getElementById(name)
     if(str.style.display =="none"){
str.style.display = "block";
      }else{
str.style.display = "none";
       }
}
样式表
div{
display:none;
}
主体
<a herf = "#" id = "1" onclick = "d('dd')">点击</a>
<div id = "dd"></div>
我的原意是想在点击“点击”的时候让层显示或者隐藏,可是在生成网页的时候 首次加载网页的时候必须要点2次“点击”才能显示,我知道这是样式表冲突了 只要把样式表改写成行内样式表就可以了 可是如果这样的层只有一两个的话还好,如果多的话代码的冗余就太多了  有没有办法在不加大代码的冗余量的同时把这个问题解决掉   请求帮助

解决方案 »

  1.   

    可以通过currentStyle属性获取当前生效的样式来判断。
    function d(id) {
        var element = document.getElementById(id);
        if (!element) return;
        var style = element.currentStyle || document.defaultView.getComputedStyle(element, null);    if(style.display == "none") {
            element.style.display = "block";
        } else {
            element.style.display = "none";
        }
    }http://jsfiddle.net/yd3Xj/
      

  2.   

    点击前str.style.display ==  '';
    所以点击第一次的时候 就隐藏了,
    此时str.style.display == 'none';
    第二次点击就出现了。
      

  3.   


    function d(name){
    var str = document.getElementById(name);
      if(str.style.display ==""||str.style.display =="none"){
    str.style.display = "block";
      }else{
    str.style.display = "none";
      }
    }