使用Javascript更改div

使用Javascript更改div,javascript,html,Javascript,Html,使用纯Javascript,我想创建一个选项卡效果来切换div中的内容。content是我想添加或删除第二个类active的类的名称 <script> function changeClass(element) { if (classList !=='active') { element.classList.add('active');

使用纯Javascript,我想创建一个选项卡效果来切换div中的内容。content是我想添加或删除第二个类active的类的名称

            <script>
            function changeClass(element) {

                if (classList !=='active') {
                    element.classList.add('active');
                }
                else { element.classList.remove('active'); }
            }
            </script>
            <ul>
                <li onclick = "changeClass("content")">

函数类(元素){
如果(类列表!=='active'){
element.classList.add('active');
}
else{element.classList.remove('active');}
}

错误在于您没有选择任何元素(不知道为什么没有人发现这一点),而是试图更改字符串的类列表(
“content”.classlist…
)。确保首先选择正确的图元:

function changeClass(element) {
    element = document.getElementsByClassName(element)[0]; // assuming here we're selecting the first one
    if (!element.classList.contains('active')) { // had to fix this as variable classList wasn't defined
        element.classList.add('active');
    }
    else {
        element.classList.remove('active');
    }
}
另外,正如@Teemu在评论中所建议的,但拒绝编写,可以随意使用
element.classList.toggle('active')。
因此,整个代码应该是:

function changeClass(element) {
    element = document.getElementsByClassName(element)[0]; // assuming here we're selecting the first one
    element.classList.toggle('active');
}

错误在于您没有选择任何元素(不知道为什么没有人发现这一点),而是试图更改字符串的类列表(
“content”.classlist…
)。确保首先选择正确的图元:

function changeClass(element) {
    element = document.getElementsByClassName(element)[0]; // assuming here we're selecting the first one
    if (!element.classList.contains('active')) { // had to fix this as variable classList wasn't defined
        element.classList.add('active');
    }
    else {
        element.classList.remove('active');
    }
}
另外,正如@Teemu在评论中所建议的,但拒绝编写,可以随意使用
element.classList.toggle('active')。
因此,整个代码应该是:

function changeClass(element) {
    element = document.getElementsByClassName(element)[0]; // assuming here we're selecting the first one
    element.classList.toggle('active');
}
如果只想在两个类之间切换,可以执行以下操作:

function changeClass(element) {
    element.classList.toggle('Content');
}
虽然在这种情况下,您必须传递对元素的引用,而不是它的类名。

如果您只想在两个类之间传递引用,您可以执行以下操作:

function changeClass(element) {
    element.classList.toggle('Content');
}

尽管在这种情况下,您必须传递对元素的引用,而不是它的类名。

为什么不尝试使用jquery?请查看如何使用。我同意@shijin。。。在这种情况下,jQuery会容易得多。对所有jQuery的人来说:@Teemu请在jQuery接管之前把它写下来作为一个答案。你为什么不试试jQuery?请看看如何使用。我同意@shijin。。。在这种情况下,jQuery会容易得多。对所有jQuery的人来说:@Teemu请在jQuery接管之前写下它作为一个答案。有趣的是,你在没有解决实际错误的情况下得到了+1。@Shomz我以为这是你的一票:)。事实上,我的答案中也有一个错误(至少与OP的代码相比是这样)。哈哈,不,当我发布我的答案时,你没有发布答案,这就是我在我的答案中提到你的原因。是的,我想我们现在都搞定了。这里有一个是我写的。@Shomz我想是的,不过在再次阅读这个问题之后,我想
内容
是一个类名,我想切换一下+1作为你的答案。你的意思是
内容
大写C?好吧,这取决于他自己有趣的是,你在没有解决实际错误的情况下得到了+1。@Shomz我以为这是你的一票:)。事实上,我的答案中也有一个错误(至少与OP的代码相比是这样)。哈哈,不,当我发布我的答案时,你没有发布答案,这就是我在我的答案中提到你的原因。是的,我想我们现在都搞定了。这里有一个是我写的。@Shomz我想是的,不过在再次阅读这个问题之后,我想
内容
是一个类名,我想切换一下+1作为你的答案。你的意思是
内容
大写C?好吧,这取决于他自己