Although all browsers would support this attribute-based approach to "classes", and there are probably no meaningful performance differences, it's invalid HTML (will fail validation). It's a style I hadn't seen before, and the reason is that it is a bad idea. Classes have been around for years and have all kinds of supporting machinery and are understood by any beginning HTML programmer.
For instance, with "normal" class usage, you can use elt.classList.add, or $(elt).addClass, and add multiple classes at a time, and toggle them, and get the whole list with elt.className, and get elements with getElementsbyClassName. None of this machinery is available for your "class as attribute" animals. You'll have to use elt.removeAttribute to get rid of them one at a time, and then elt.setAttribute to add them back, use querySelectorAll('[myClass]') to look for them, etc.
.myclass, as[myclass]is for HTML attributes. Also, people can find it harder to understand your code.idvalue of an element. Where dots are used to reference theclassvalue