Witam. Mam problem odnośnie napisania funkcji, która będzie ukrywała/odsłaniała długi tekst zawarty w postach umieszczonych na mojej stronie głównej. Jestem początkującym programistą, a JS jest dla mnie nowością, więc być może posiadam nawyki zaczerpnięte z innych języków. Trochę namieszałem w moim kodzie, dlatego postaram się go lekko wytłumaczyć. Funkcja reduceText zwraca mi wartość która powinna być odnośnikiem do elementu na którym chcę wywołać zdarzenie, a więc 'a', zaś funkcja showText przyjmuje oprócz identyfikatora paragrafu tekst który chcemy wyświetlić w zawartości. Zależy mi na tym aby ograniczyć tekst o długości większej niż 250 znaków i dodać do niego odnośnik "Czytaj więcej", którego kliknięcie spowoduje odsłonienie pozostałej zawartości. Oto kod:
[JAVASCRIPT] pobierz, plaintext
  1. function reduceText(id) {
  2. 'use strict';
  3. var p = document.getElementById(id);
  4. var val = p.childNodes[2];
  5. var result = val.nodeValue.substring(0,250) + "...";
  6. val.nodeValue = result;
  7. var a = document.createElement('a');
  8. a.appendChild(document.createTextNode("Czytaj więcej"));
  9. p.appendChild(a);
  10. return a;
  11. }
  12.  
  13. function showText(id,content) {
  14. 'use strict';
  15. var p = document.getElementById(id);
  16. var val = p.childNodes[2];
  17. val.nodeValue = content;
  18. }
  19.  
  20. window.onload = function() {
  21. 'use strict';
  22. var number = 5;
  23. var content = new Array();
  24. for(var i=0;i<number;i++) {
  25. content[i] = document.getElementById('post'+(i+1)).childNodes[2].nodeValue;
  26. if(content[i].length > 250) {
  27. var clicker = reduceText('post'+(i+1));
  28. clicker.onclick = function() {
  29. showText('post'+(i+1),content[i]);
  30. };
  31. }
  32. }
  33. };
[JAVASCRIPT] pobierz, plaintext