Hola:
Vayamos por partes... En mi opinión usar un nombre como "$" es muy poco descriptivo (nunca me ha gustado)... y createAttribute no existe (lo que existe es setAttribute, pero con dos parámetros)...
Hace tiempo que no recomiendo una vieja página:
Nuevo destripador
Saludos