Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][JavaScript]podświetlanie zaznaczonego wiersza w tabeli
Forum PHP.pl > Forum > Przedszkole
KCG
Chciałbym podświetlać wiersz w tabeli po zaznaczeniu checkbox'a. Mogę zmienić jego klasę w ten sposób, przy zdarzeniu onclick:
  1. if (document.getElementById("z").className == 'kl') document.getElementById("z").className = '';
  2. else document.getElementById("z").className = 'kl';

Chodzi oczywiście o zaznaczanie i odznaczanie. Jednak element posiada już jedną klasę. Dlatego w else mogę zmienić = na +=, aby przypisywał dodatkową klasę, ale po odznaczeniu wszystkie klasy giną. Jak to rozwiązać?
Przydałoby się coś w stylu php'owego strstr() i bym szukał czy jest jedna i druga, czy tylko jedna, jest jakaś funkcja tego typu w JS?

pzdr
erix
Kurs JS się kłania:
https://developer.mozilla.org/En/Core_JavaS.../String/Replace
KCG
No z tego linku za dużo się nie dowiedziałem. Mógłbyś mi napisać, jak sprawdzić, czy jakaś nazwa klasy jest już w className? Tym replace raczej tego nie osiągnę, próbowałem search, ale też nie było pożądanego rezultatu :/
kamil4u
Kod
if (document.getElementById("z").className == 'kl') document.getElementById("z").className =document.getElementById("z").className.slice(0,2);//zamiast 2 ma być liczba znaków tej przypisanej klasy
else document.getElementById("z").className += 'kl';


Lub coś w tym stylu smile.gif
KCG
Nie działa odznaczanie w Twoim przypadku, a poza tym, jeśli będą 2 klasy to warunek ten nigdy nie będzie spełniony i o to wszystko się rozbija:
if (document.getElementById("z").className == 'kl')

Dzięki w każdym razie za odpowiedzi.
skowron-line
http://www.w3schools.com/jsref/jsref_IndexOf.asp wyszukiwanie stringa w podciagu.
A nie możesz zrobić na sztywno classy questionmark.gif

Kod
if( document.getElementById( 'checkBox' ).checked == true )
document.getElementById( 'tr' ).className = 'klasa1';
else
document.getElementById( 'tr' ).className = 'klasaDefault';
KCG
Nie mogę na sztywno, bo element posiada drugą klasę, lub nie, więc mamy 2 przypadki.
Naskrobałem takiego tasiemca i działa:
  1. if (document.getElementById('tr').className.indexOf('kl') != -1) {
  2. if (document.getElementById('tr').className.indexOf('kl2') == -1)
  3. document.getElementById('tr').className='';
  4. else
  5. document.getElementById('tr').className='kl2';
  6. } else document.getElementById('tr').className += ' kl';


Dzięki wszystkim winksmiley.jpg
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.