Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Zmiana zawartości
sher
post 3.04.2015, 13:45:25
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 9.07.2014

Ostrzeżenie: (0%)
-----


  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ą?

Ten post edytował sher 3.04.2015, 13:54:33
Go to the top of the page
+Quote Post
trueblue
post 3.04.2015, 14:02:59
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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;


--------------------
Go to the top of the page
+Quote Post
sher
post 3.04.2015, 14:21:41
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 9.07.2014

Ostrzeżenie: (0%)
-----


Hmm, teraz nic się nie zmienia. Cały czas pozostaje 0.
Go to the top of the page
+Quote Post
trueblue
post 3.04.2015, 14:23:10
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Pokaż kod po zmianach.


--------------------
Go to the top of the page
+Quote Post
sher
post 3.04.2015, 14:25:17
Post #5





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 9.07.2014

Ostrzeżenie: (0%)
-----


  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

Ten post edytował sher 3.04.2015, 14:31:41
Go to the top of the page
+Quote Post
trueblue
post 3.04.2015, 14:30:25
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
IProSoft
post 3.04.2015, 14:32:46
Post #7





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

Ostrzeżenie: (0%)
-----


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


--------------------
Manual prawdę Ci powie.
Go to the top of the page
+Quote Post
markuz
post 3.04.2015, 14:33:06
Post #8





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


[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).


--------------------
Go to the top of the page
+Quote Post
sher
post 3.04.2015, 14:33:21
Post #9





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 9.07.2014

Ostrzeżenie: (0%)
-----


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.

Ten post edytował sher 3.04.2015, 14:45:36
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.07.2025 - 04:12