Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie klasy do linków
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Tajgeer
Witam,
Dopiero raczkuje w temacie JavaScript. Próbowałem napisać skrypt, który po wykryciu, że link prowadzi do obrazka w formacie .jpg (czyli w atrybucie href zawiera .jpg), dodaje następnie do niego klasę (thickbox), ale nie działa on zbyt dobrze (a dokładniej wcale nie działa).

  1. <script type="text/javascript">
  2. var Link = getElementByTagName('a');
  3.  
  4. for(i=0;i<Link.length;i++)
  5. {
  6.  
  7. if(Link.hasAtrribute('href'))
  8. {
  9. var LinkHref = Link.getAttribute('href');
  10. }
  11.  
  12. if(preg_match('/.jpg/i', LinkHref))
  13. {
  14. Link.setAttribute('class', 'thickbox');
  15. }
  16.  
  17. }

Co jest źle?
viking
getElementsByTagName
Tajgeer
Niestety nic to nie dało, dalej nie działa.
ziqzaq
1. Masz literówki w kodzie (co najmniej dwie).
2. Mieszasz php z javascript (vide preg_match - no chyba, że napisałeś sobie taką funkcję).
3. Błędnie odnosisz się do linków które próbujesz pobrać.

Rady:
1. Firefox + Firebug.
2. Google + javascript + regex.
3. Zobacz sobie jak się używa document.getElementsByTagName, jest mnóstwo przykładów w google. Zwróć uwagę jak się odnosi do elemetów, które pobierasz za pomocą tej metody.
erix
Cytat
dodaje następnie do niego klasę (thickbox)

Skoro masz Thickboxa, to masz jQuery, czyli nie ma sensu babrać się czystym JS-em. Poza tym - takie dodawanie klas Ci nic nie da, bo metoda inicjująca wyzwalacze TB została WCZEŚNIEJ wykonana i teraz skrypt tego nie zauważy.

Zamiast dodawania klasy, podpinaj metodę tb_show do zdarzenia onclick.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.