Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] .children() - brak pomysłu :/
Forum PHP.pl > Forum > Przedszkole
Nicc0
Witam forumowiczów.

Zwięźle i na temat... nie mam pojęcia jak użyć metody .children() z jQuery, tak aby szukała "dzieci" od któregoś elementu. Załóżmy, że chciałbym aby zmienił się kolor czcionki od elementu np. 3. Pytanie tylko, jak?

Edit: Inaczej... nie od elementu 3 tylko od ID 03.

Przed:
  1. <ul>
  2. <li id="01">Item 1</li>
  3. <li id="02">Item 2</li>
  4. <li id="03">Item 3</li>
  5. <li id="04">Item 4</li>
  6. <li id="05">Item 4</li>
  7. </ul>

Po:
  1. <ul>
  2. <li id="01">Item 1</li>
  3. <li id="02">Item 2</li>
  4. <li id="03" style="color: red">Item 3</li>
  5. <li id="04" style="color: red">Item 4</li>
  6. <li id="05" style="color: red">Item 4</li>
  7. </ul>

Z góry dzięki za pomoc.
sowiq
[JAVASCRIPT] pobierz, plaintext
  1. $('#elem_id').nextAll().andSelf().addClass('red');
[JAVASCRIPT] pobierz, plaintext


Zresztą manual jQuery się kłania, bo dokładnie taki sam przypadek jest w nim opisany: http://api.jquery.com/andself/
rad11
http://jsfiddle.net/vmusmpno/
trueblue
  1. $("ul li:gt("+($("ul li" ).index("li#03")-1)+")")


W HTML4 id nie może zaczynać się od cyfry.
Nicc0
Witam ponownie. Mam kolejny kłopot :/ Napisałem taki o to kod:

[JAVASCRIPT] pobierz, plaintext
  1. $(function() {
  2. function replaceMessageToLink() {
  3. var message = $(this).children(".message").text();
  4. console.log(message);
  5. var html = findLinkInMessage(message);
  6. console.log(html);
  7. $(this).children(".message").empty().append(html);
  8. a = $("ul.chat-lines li.chat-line:last:not(.admin)").attr("id");
  9. }
  10.  
  11. function findLinkInMessage(c) {
  12. if(c.indexOf('http://') != -1 || c.indexOf('https://') != -1 ) {
  13. var splitResult = c.split(" ");
  14. for(i = 0; i < splitResult.length; i++){
  15. if(splitResult[i].indexOf('jpg') != -1 || splitResult[i].indexOf('png') != -1 || splitResult[i].indexOf('jpeg') != -1 || splitResult[i].indexOf('gif') != -1 ) {
  16. var linkToImage = splitResult[i];
  17. var html = '<img src="' + linkToImage + '">';
  18. return html;
  19. }
  20. }
  21. }
  22. }
  23.  
  24. function replaceLinkToImage() {
  25. if(typeof a === 'undefined') {
  26. $("ul.chat-lines li.chat-line:not(.admin)").each(function() {
  27. replaceMessageToLink();
  28. });
  29. } else {
  30. $("ul.chat-lines li.chat-line#"+a+":not(.admin)").nextAll().each(function() {
  31. replaceMessageToLink();
  32. });
  33. }
  34. }
  35.  
  36. setInterval(replaceLinkToImage, 1000);
  37. });
[JAVASCRIPT] pobierz, plaintext


Problem polega na tym, że w funkcji replaceMessageToLink(); zmienna "message" zwraca "undefined". Wiem, że jest to wina $(this). Tylko nie wiem jak mam to zrobić, aby $(this) zwracało odpowiedni element, który "chwytam" w funkcji replaceLinkToImage(). Znaleźć niestety nic nie mogę. Pewnie dlatego, że nawet nie wiem czego mam szukać... Mam również pytanie, do bardziej doświadczonych użytkowników. Czy kod chociaż w minimalnym stopniu jest sensowny i czy ewentualnie można coś poprawić.

/ref
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.