addClass to getElementsByClassName array
Asked Answered
L

3

5

I need a little help as i am getting frustrated with .getElementsByClassName. I have an svg map that has paths with classes. I now need to list all with a certain class and add another class. Right now i have

var testarray = (document).getElementsByClassName("currentclass");
for(var i = 0; i < testarray.length; i++)
{
   testarray.item(i).className("classtobeadded");
}

This returns me a "undefined is not a function" error. I've tried $(document), (document), (jQuery), i've tried $(".currentclass").addClass(), i've tried lots of combinations without success. Can you guys tell what i am doing wrong?

Thank you!

Librium answered 22/7, 2014 at 21:2 Comment(0)
U
11

You have a couple syntax errors, this should get it done:

var testarray = document.getElementsByClassName("currentclass");
for(var i = 0; i < testarray.length; i++)
{
    testarray[i].className += "classtobeadded";
}

Or since you're using jQuery you can do:

$(".currentclass").each(function() {
    $(this).addClass("classtobeadded");
});
Unguiculate answered 22/7, 2014 at 21:4 Comment(0)
T
3

You have some errors on your code

var testarray = (document).getElementsByClassName("currentclass");
for(var i = 0; i < testarray.length; i++)
   testarray.item(i).className += " classtobeadded";

You have to pay attention, you have to add a little space to add a new class like this

testarray.item(i).className += " classtobeadded";
Tigon answered 22/7, 2014 at 21:15 Comment(0)
M
3

This jQuery should also work

  $(".currentclass").addClass("classtobeadded");
Monet answered 17/6, 2015 at 19:26 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.