JavaScript不会更改ClassName

时间:2015-07-12 04:47:32

标签: javascript html

HTML:

<div class="icon1ex">
    <div class="boxfortitle">
        Some text
    </div>
    <div class="cross" onclick="collapse(this);">
        <div class="line1"></div> 
        <div class="line2"></div> //These two lines form a cross in my div
    </div>
</div>

Javascript:

function collapse (x) {
    var classOfParent = x.parentNode.className;
    var newClassName = classOfParent.substr(0,5);   //newClassName = icon1
    x.parentNode.className = newClassName;
}

我希望JavaScript代码将类“icon1ex”的div类名更改为“icon1”。但是,我没有得到理想的结果。在我的浏览器中检查元素时,我可以看到类名“icon1ex”以粉红色突出显示片刻,表明我的代码正在工作。但是,该课程不会更改为“icon1”。我哪里错了? (我希望更喜欢纯粹的JS解决方案。)
提前谢谢!

2 个答案:

答案 0 :(得分:3)

你要踢自己,但是你设置变量newClassname,然后尝试使用变量newClassName(不同的大小写)

如果你看了,你的Javascript控制台会向你展示这个错误。

答案 1 :(得分:0)

是的,@ Gareth对拼写错误是对的......

newClassName在您设置新类名时没有正确使用驼峰。

如果这不起作用,请尝试检查您的javascript是否包含在HTML页面的正文或正文中。可能是在页面准备好之前没有加载它,因此没有定义函数。

在这个jsFiddle中放置工作示例。

https://jsfiddle.net/em0ney/o55hbmdk/