@zegarek84: Z tego się później rodzą same problemy. W manualu jak wół jest napisane
must be, a to, że przeglądarki są idiotoodporne to zupełnie inna kwestia. Nie bez powodu wymyślono atrybut class. Później ktoś robi stronę, jest "mistrzem" HTML,a jak przyjdzie dodać coś przez JS, to wychodzi z tego jedno wielkie g i trzeba przerabiać całą stronę. Należy i zawsze trzeba używać tego samego atrybutu id tylko raz! Nie ma od tego wyjątków. A Twoje argumenty, że można bo działa, to tak jakbyś napisał, że dodawanie można zastąpić mnożeniem, bo 2+2=2*2( id można zastąpić klasą, bo działa .querySelectorAll ).
-----------
Nie patrzyłem dawno w źródła jQuery, ale chyba $ korzysta z .querySelectorAll, a co za tym idzie dla starszych przeglądarek używane jest zwykłe .getElementById, co z kolei powoduje różne wyniki dla różnych przeglądarek(nowsza, starsza):
http://jsfiddle.net/zh7S5/Ty co prawda zastosowałeś sztuczkę, żeby wymusić szukanie po atrybucie, a nie wprost po DOM, ale początkujący tak nie zrobią( nie wpadną na to), a po drugie znacznie wydłużasz czas poszukiwania elementów.
Nie widzę żadnych zalet takiego rozwiązania, a początkującym może się wszystko pomieszać i później tylko narzekają, że coś im nie działa.