猿问

IE7下冒泡为何没效果。IE8正常

//    TODO:获取事件源
    var jpNav = document.getElementsByClassName("jp-nav");

//    TODO:便利数组并增加点击事件
    for(var i = 0 ; i < jpNav.length ; i++){
        jpNav[i].onclick = function(event){
            var event = window.event || arguments[0];
            var e =  event.srcElement ? event.srcElement : event.target;
            if(!e.href){
                return;
            }else{
                var arr = e.parentNode.childNodes;
                for(var j = 0 ; j < arr.length ;j++){
                    if(arr[j].nodeType == 1){
                        if(arr[j].getAttribute("class") == "zt-active"){
                            arr[j].setAttribute("class","");
                        }
                    }
                }
                e.setAttribute("class","zt-active");
            }
        }
    }


mmmmm_魂牵梦萦
浏览 1985回答 4
4回答

zhangcl

你是要达到修改点击的标签和所有兄弟标签的类名的效果吗?建议用jquery处理,本身已经作了很多浏览器的兼容性处理了,不建议用dom对象去进行这样的操作,上面写得很复杂,用jquery修改本身元素的class值,然后获取兄弟元素,修改class,而且不用for循环,直接修改可以改掉所有的兄弟元素的class,dom对象我不清楚可不可以去掉for循环(你上面写了for循环的),你可以试一下。

echo_kinchao

不兼容

mmmmm_魂牵梦萦

我知道document.getElementsByClassName不兼容,已经用函数解决了,而且重点也不在这里。

Lyong

document.getElementsByClassName   ie7 ie8 都不行吧
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答