2009-07-09 8 views
9

Próbuję zmienić klasę elementu z JavaScript za pomocą poniższego kodu:zmianę klasy z <span> elementu z JavaScript

parent.document.getElementById('<?php echo $markid ?>').class = 'unlistened'; 

Nie mając dużo szczęścia chociaż. Jak zrobić to poprawnie?

Odpowiedz

18

.nazwaklasy zamiast .class

+0

d'oh! pobili mnie do tego przez 20 sekund: p – peirix

+0

bicie mnie też ... – edeverett

8

Korzystając .className zamiast .class

klasa jest słowem zarezerwowanym w JS więc zmieniło się className kilku innych. Atrybuty HTML zmieniają się w podobny sposób. "Dla" zmian w "htmlFor" dla instancji.

2

Just a wskazówka, to o wiele łatwiejsze w użyciu jQuery jeśli robisz JavaScript w tych dniach, ponieważ jest o wiele łatwiejsze i tylko naprawdę wymaga, aby mieć dobrą znajomość CSS (dla selektorów i tak dalej)

Zrobiłbyś $(selector).addClass('myclass');

I sprowadzaniu go tak:

$(selector).attr('class');

O tak, i proszę zauważyć, że jeśli używasz mieszaniny klas dla dowolnego elementu, powyższa funkcja zwróci je wszystkie oddzielone spacją (jak zdefiniowałbyś w atrybucie klasy HTML). Jeśli chcesz aby sprawdzić, czy istnieje szczególna klasa, to zrobić:

$(selector).hasClass('class');

to podstawy klasy manipulacji z jQuery. Sprawdź resztę na http://docs.jquery.com/.

+0

Nie jestem pewien, dlaczego ludzie nie zgadzają się z moją odpowiedzią. Jest to pomocna i przyjazna sugestia ... –

+0

Zrobiłem downvote, ale wyobrażam sobie, ponieważ nie było żadnej wzmianki o poszukiwaniu rozwiązania w jQuery, a raczej po prostu JS. –

+0

Jeśli nie korzystasz już z jquery, nie jest to przydatna odpowiedź, jeśli proste rozwiązanie javascript jest równie łatwe (w tym przypadku nawet łatwiejsze niż Twoja sugestia ...). Przy okazji - nie przesłałem ci ... – awe

Powiązane problemy