Javascript 我强制使用GetElementsByCassName()[],而不是getElementByClass()

Javascript 我强制使用GetElementsByCassName()[],而不是getElementByClass(),javascript,Javascript,我有8个div,id=div1,div2,div3。。。。类=divs。我还有一个class=div1,div2,div3 当我单击id=div1的按钮时,它将首先删除所有class=selected到所有具有class=divs的div,然后只有id=div1的div将选择该类。等等 我想使用document.getElementByClass删除类,但它在我的中不起作用: 相反,我被迫使用document.getElementsByClassName[]。但是它似乎很难编码,因为它需要我为类

我有8个div,id=div1,div2,div3。。。。类=divs。我还有一个class=div1,div2,div3

当我单击id=div1的按钮时,它将首先删除所有class=selected到所有具有class=divs的div,然后只有id=div1的div将选择该类。等等

我想使用document.getElementByClass删除类,但它在我的中不起作用:

相反,我被迫使用document.getElementsByClassName[]。但是它似乎很难编码,因为它需要我为类名放置特定的数组


这正是我想要实现的

没有getElementByClass这样的东西,因为多个元素可以具有相同的类。有些getElementById元素具有唯一的ID,或者至少它们应该具有唯一的ID和GetElementsByCassName,后者返回与指定类匹配的所有元素的数组。

这是一个简单的方法。没有文档。getElementByClass

您有document.getElementById或document.getElementByClassName

没有getElementByClass是有原因的:与id不同,类在文档中没有指定为唯一的。你会得到哪种元素?不,你需要有能力得到所有这些。如果您得到一个数组,则通过循环解决,而不是为每个索引重复行:

然而,您的设计效率低下;如果您已经在使用jQuery,那么可以非常紧密地编写它。这样会更好:

<button class="divbuttons" data-div="div1">div1</button>
<button class="divbuttons" data-div="div2">div2</button>
...
试一试


document.getElementByClass?在javascript中没有像getElementByClass这样的方法有一个方法getElementByClassName,它返回具有该类名的元素数组。这不是document.querySelectorAll的注释吗?也许更好。
$(document).ready(function(){
  $('.divbuttons').click(function() {
    var div = $(this).data("div");
    $('.divs.selected').removeClass('selected');
    $('#' + div).addClass('selected');
  });
});
$(document).ready(function () {

    $("button[class^=div]").click(function () {

        $(".divs.selected").removeClass("selected");

        $("#" + $(this).attr("class")).addClass("selected");

    });
});