d3 add multiple classes with function

You can assign multiple classes to elements by simply separating their names with spaces:

d3.selectAll(".user").attr("class", "user Michael");

But it seems that what you really need is to assign a data property to your elements for which it is much better to use the HTML5 data- attributes. So you could do:

d3.selectAll(".user").attr("data-name", function(d,i) { return "Michael #" + i; });

and later to obtain the name of a user:

d3.select(".user").attr("data-name")

why use HTML5 data attributes, duplicating data that is already there in the title attribute? HTML5 data attributes sure are useful, but duplicating data is not a good thing.

There is an easy of doing it without data duplication, being close to what you had in mind originally.

d3.selectAll('.user').each(
    function(){
        var elt = d3.select(this);
        elt.classed(elt.attr("title"), true);
    }
) 

If you just want to add a class, you can jump out of d3 and use the class list:

d3.selectAll('.user').node().classList.add("mynewclass");

Might not work in very old browsers tho.