Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Zmiana zawartości
Forum PHP.pl > Forum > Przedszkole
sher
  1. function up(id) {
  2. if (document.getElementById('up'+id).style.color == "black" && document.getElementById('down'+id).style.color == "black"){
  3. document.getElementById('up'+id).style.color = "green";
  4. document.getElementById('up'+id).style.BorderColor = "green";
  5. var ids = document.getElementById('rate'+id);
  6. parseInt(ids);
  7. return ids.innerHTML = ids+1;
  8. }
  9. }


Jak w elemencie jest cyfra 0, i powinno zmienić się na 1, to zamiast tego pojawia się "[object HTMLSpanElement]1". Jak pozbyć się tego tekstu przed jedynką?
trueblue
parseInt zwraca jakąś wartość, a Ty jej nigdzie nie przypisujesz, ale całe szczęście, że tego nie robisz, bo próbujesz zamienić na integer obiekt html.
Jeśli w spanie jest czysty tekst, to pobierz go za pomocą:
  1. var ids = document.getElementById('rate'+id).innerHTML;
sher
Hmm, teraz nic się nie zmienia. Cały czas pozostaje 0.
trueblue
Pokaż kod po zmianach.
sher
  1. function up(id) {
  2. if (document.getElementById('up'+id).style.color == "black" && document.getElementById('down'+id).style.color == "black"){
  3. document.getElementById('up'+id).style.color = "green";
  4. document.getElementById('up'+id).style.BorderColor = "green";
  5. var ids = document.getElementById('rate'+id).innerHTML;
  6. parseInt(ids);
  7. return ids.innerHTML = ids+1;
  8. }
  9. }

albo
  1. function up(id) {
  2. if (document.getElementById('up'+id).style.color == "black" && document.getElementById('down'+id).style.color == "black"){
  3. document.getElementById('up'+id).style.color = "green";
  4. document.getElementById('up'+id).style.BorderColor = "green";
  5. var ids = document.getElementById('rate'+id).innerHTML;
  6. parseInt(ids);
  7. return ids = ids+1;
  8. }
  9. }

próbowałem tak i tak.

Edit: jestem upośledzony, zaraz to ogarnę, poczekajcie z odpisywaniem
Edit2: okej udało się,
  1. function down(id) {
  2. if (document.getElementById('up'+id).style.color == "black" && document.getElementById('down'+id).style.color == "black"){
  3. document.getElementById('down'+id).style.color = "red";
  4. document.getElementById('down'+id).style.BorderColor = "red";
  5. var ids = document.getElementById('rate'+id).innerHTML;
  6. var idx = document.getElementById('rate'+id);
  7. parseInt(ids);
  8. return idx.innerHTML = ids-1;
  9. }
  10. }

Jeszcze jedno pytanie, jak zrobić, żeby zamiast "01" wyświetlało się samo "1"? snitch.gif
trueblue
parseInt zwraca wartość, Ty jej nigdzie nie przypisujesz.
Nie wiem co Twoja funkcja ma ostatecznie robić, ale jak chcesz zwrócić wartość, to zrób jak w przykładzie 2. bez przypisywania wartości do zmiennej ids, jeśli chcesz przypisać wartość do zawartości elementu, to zrób jak w przykładzie 1., ale bez return. Tam również musisz pamiętać, że pod ids jest zawartość elementu, a nie on sam.
IProSoft
Chyba brakuje Ci tego
[JAVASCRIPT] pobierz, plaintext
  1. var ids = parseInt( document.getElementById('rate'+id).innerHTML );
  2. document.getElementById('rate'+id).innerHTML = ids + 1;
[JAVASCRIPT] pobierz, plaintext
markuz
[JAVASCRIPT] pobierz, plaintext
  1. var up = function up(id) {
  2. var styleUp = document.getElementById('up' + id).style;
  3. var styleDown = document.getElementById('down' + id).style;
  4.  
  5. if(styleUp.color == 'black' && styleDown.color == 'black') {
  6. styleUp.color = 'green';
  7. styleUp.BorderColor = 'green';
  8. var id = parseInt(document.getElementById('rate' + id).innerHTML);
  9.  
  10. return (id + 1);
  11. }
  12.  
  13. return 0;
  14. };
[JAVASCRIPT] pobierz, plaintext


Jeżeli odnosisz się do jakiejś właściwości więcej niż 1 raz warto ją umieścić w zmiennej (wtedy kod jest wydajniejszy).
sher
Dobra, ogarnąłem wszystko. Myślę, że za bardzo się pośpieszyłem z tematem, prawdopodobnie po jakimś czasie i chwili szukania sam bym to zrobił, ale tak czy siak, dzięki wszystkim za pomoc snitch.gif
Temat do zamknięcia.
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.