Leider kann ich nicht so richtig nachvollziehen was hier genau nicht stimmt, anscheinend soll es ein Problem mit dem "<" Zeichen geben, doch das Skript funktioniert in sich Fehlerfrei und gibt auch keine Fehler zurück. Woran kann das liegen?
Das < ist innerhalb von Javascript genutzt. Aber Javascript wird vom Validator wie ganz normaler Seitentext interpretiert, deshalb haben alle Zeichen dort natürlich ihre HTML-Sonderbedeutung (sofern sie eine haben). < hat jedenfalls eine: Anfang eines HTML-Tags.
Lösung: Entweder du klammerst den JS-Code als HTML-Kommentar aus, oder setzt ihn als CDATA-Bereich.