Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][CSS]CSS w JavaScript
Forum PHP.pl > Forum > Przedszkole
Kerth
Witam,
dlaczego ten kod się nie wykonuje?
  1. document.write("<div class="error">Musisz wpisać nick!</div>");


gdy zmienię tak:
  1. document.write("Tekst");


kod działa. Clasa "error" odnosi się do CSS. Można w ogóle tak używać CSS w JavaScript?
kamil4u
Bo nie zgadzają Ci się ", zrób tak:
Kod
document.write("<div class=\"error\">Musisz wpisać nick!</div>");

Lub użyj zamiennie " i '.

I poczytaj dlaczego nie używać "document.write".

Pozdrawiam
Kerth
To wyświetla tylko sam tekst. Brak efektu z CSS. Co zrobić?
trueblue
A jak wygląda plik CSS? Masz kropkę przed słowem error?
Kerth
  1. .error {
  2. color: #000000;
  3. background-color: #FFBABA;
  4. position:absolute;
  5. text-align:center;
  6. display:table;
  7. left: 50%;
  8. margin-left: -290px;
  9. background-image: url('images/error.png');
  10. }


Tak jest kropka. Ale gdy ją tak:

  1. document.write("<div class=\".error\">Musisz wpisać nick!</div>");

nic się nie dzieje.
johny_s
to wywal tąkropkę z div'a
krpkę się stawia tylko w definicji stylów
Kerth
No właśnie zarówno tak:
  1. document.write("<div class=\".error\">Musisz wpisać nick!</div>");


jak i tak:

  1. document.write("<div class=\"error\">Musisz wpisać nick!</div>");


Nie działa
PrinceOfPersia
a dołączyłeś ten plik w ogóle? Co masz w HTMLu?


Kerth
  1. <link rel="stylesheet" href="inc/komunikaty.css">


Tak dołączyłem. Ten sam div wyświetlany przez funkcję echo(""); działa poprawnie.
PrinceOfPersia
nie wiem co wy macie z tym document.write, czy echo. To jest potrzebne do czegoś?

A tutaj mam niespodziankę: przeglądarki są w stanie wyświetlać HTML natywnie. Bez pisania document.write ani echo. Po prostu tworzysz plik tekstowy w formacie html, zapisujesz, wgrywasz na serwer i działa. Wywalasz nawiasy i cudzysłowy i piszesz:

Kod
<!doctype html>
.blal, bla bla bla bla.........
<div class="error">Musisz wpisać nick!</div>

i zapisujesz jako HTML (nie wiem czy ci zadziało co ma ci zadziałać, ale przynajmniej się nie zepsuje, a z document.write prawdpodobnie ci się rozp... cały dokument).


edit: niby to powinno być oczywistą oczywistością, ale jak widać nie jest...
Kerth
Nie o to chodzi. Przyjrzyj się temu kodowi:

  1. function sprawdz_formularz()
  2. {
  3. var bledy = '';
  4. var f = document.forms['formularz'];
  5. if (f.nick.value == '')
  6. bledy += 'Musisz wpisać Nick!\n';
  7. //document.write("<div class=\"error\">Musisz wpisać nick!</div>");
  8. if (f.haslo.value == '')
  9. bledy += 'Musisz wpisać Hasło!\n';
  10.  
  11. if (bledy == '')
  12. return true;
  13. else
  14. {
  15. alert(bledy);
  16. return false;
  17. }
  18. }


W komentarzu jest div. Dlaczego to nie działa??
johny_s
bo document.write nadpisuje Ci w tym momencie całego html'a i nie ma pojęcia o tym jak wygląda klasa error
Kerth
To co proponujesz zrobić? Czego zamiast document.write mam użyć?
johny_s
pobierasz jakiś kontener(div, span czy cokolwiek innego) i dopisujesz do niego
PrinceOfPersia
model DOM (Document Object Model).

dokument HTML jest zamieniany w przeglądarkach na hierarchiczną strukturę obiektów, gdzie każdy element oznaczony tagiem/parą tagów jest obiektem
  1. <div></div> ---> obiekt
  2. <img src="obrazek.js" /> ---> inny obiekt


po załadowaniu strony można się odwoływać do tych obiektów, np. poprzez document.getElementById("ID_ELEMENTU").innerHTML = 'cos tam' Albo dołączając bibliotekę programistyczną jQuery napisaną przez Johna Resiga można napisać $("#ID_ELEMENTU").html('cos tam');
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.