<div id=zcy_yingcang>1111111111</a></div>
<br>
<div id=zcy_yingcang>2222222222</a></div>
<a style="cursor:hand" onclick="javascript:if (document.getElementById('zcy_yingcang')) document.getElementById('zcy_yingcang').style.display='none';">隐藏层</a>
页面有相同的id名称,则出错,请问怎么做

解决方案 »

  1.   

    这完全是页面结构设计上的不合理。
    既然是ID,就应该不一样才对。
    非要搞定这个问题的话,用getElementsByTagName()取得所有同标签名的元素,然后遍历比较各自的ID值。
      

  2.   

    再多也不会有多少的啊,用firebud挨个看一看就是了。反正是XHTML结构的问题
      

  3.   


    以前页面处理广告错了,我想在尾部进行一个js调用处理页面,id不能改,只能是相同的id
      

  4.   


    Array.prototype.exists = function(value) {
        return ("," + this.join(",") + ",").indexOf("," + value + ",") > -1
    }
    function test(){
        var all = document.getElementsByTagName("div");
        var array = [];
        for (var i = 0, l = all.length - 1; i < l; i++) {
            if (array.exists(all[i].id)) {
                alert(all[i].id)
                return;
            }
            else {
                array.push(all[i].id);
            }
        }
    }
      

  5.   

    相同的ID不可能的 可以通过NAME
      

  6.   

    这样是不符合标准的,但要非这样的话,可以试试这个:
    var arr = document.getElementsByTagName("div");
    for(i=0;i<arr.length;i++){if(arr[i].id=="zcy_yingcang") arr[i].style.display = "none";
      

  7.   

    id改相同的不好吧,可以把name改相同的,然后用getElementsByName,或者getElementsByTagName获取
      

  8.   

    id不能相同,如果设置成相同,只会取第一个,可以给需要同时隐藏的元素设置一个class,用getElementsByTagName、getAttribute等方法做遍历查找来实现,或者用jquery的选择器