JS关于removeClassName循环替换使用失败求助

2025-02-23 07:05:04
推荐回答(4个)
回答1:

html部分  id必须是唯一的, 你的o1 和 o2 分别用了三次, 应该为一次

js部分, 这里查的是id, 他只会找这个id出现的第一个元素, 所以只有一个

1. 改为 document.getElementsByClassName("et-slide");

2. 方框部分要写在循环内调用, 不然也是只调用一次

3. removeClassName 这个方法名是jquery的内置方法, 养成一个良好的习惯, 不要起这种和常用框架方法冲突的方法名

回答2:

id的英文原意就是身份证号码,它是具有唯一性的,你见过有两个人的身份证号码是一样的吗?所以同一个网页上不允许存在id相同的元素,如果出现了,那么只有第一个元素有效(能被js定位到)。而class(类)则是允许重名的,所以可以这样:

window.onload = function () {
    var stamp = document.getElementsByClassName("o2");
    for(var i=0;i        removeClassName(stamp[i],"et-slide");
    }
}
function removeClassName(element, className) {
    if (element&&element.className) {
        var elementClassName = element.className.split(" ");
        for(var i=0;i            if (elementClassName[i] == className) elementClassName[i] = "";
        }
        element.className = elementClassName.join(" ").trim();
    }
}

HTML:

1

2

3

4

5

6

建议你引用jquery,这样代码就会简单得多(HTML同上不变):

$(function(){
    $(".o2").removeClass("et-slide");
});

回答3:

首先你得布局就有问题,li标签本来就是块状元素,为什么里面就一个a标签你还要在外面加个div标签,你可以把a标签直接转换成块状元素。。$('.li').click(function(){$(this).addClass('ok').parent().siblings().children().removeClass('ok');});不过我猜测,你这样给div元素加属性,里面的a标签享受不到。

回答4:

function FixArray() { this.ArrayObj = new Array(); this.length = 10; //设定上限大小 this.head=""; this.end=""; this.add=function(Node) { if (this.ArrayObj.length

相关问答
最新问答