Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] jQuery pomoc w przeszukiwaniu div'a i zmiany elementu
Forum PHP.pl > Forum > Przedszkole
Elber
Witam,

mam kod html

  1. <div class="filtr">
  2. <h3>Producent</h3>
  3. <div class="filtrs">
  4. <p class="select_filter" id="filter_producer_select">--- wybierz ---</p>
  5. <div class="filter-checkboxes">
  6. <div class="filtration selected">
  7. <p><strong class="active">Test 1</strong><a href="link"><img src="/icons/icon-close.png"></a></p>
  8. </div>
  9. <div class="filtration selected">
  10. <p><strong class="active">Test 2</strong><a href="link"><img src="/icons/icon-close.png"></a></p>
  11. </div>
  12. <div class="filtration">
  13. <p><strong>Test 3</strong><a href="link"><img src="/icons/icon-close.png"></a></p>
  14. </div>
  15. </div>
  16. </div>


div.filter-checkboxes widoczny jest tylko po najechaniu myszką a widoczne jest cały czas p.select_filter mam kilka takich samych div;ów o takiej samej strukturze.

Problem mam taki:

Chcę aby w każdym takim divie zamiast <p class="select_filter" id="filter_producer_select">--- wybierz ---</p> w tym <p></p> były nazwy z <strong class="active"> bo wtedy ten filtr jest aktywny. Czyli chciałbym aby to wyglądało tak :

<p class="select_filter" id="filter_producer_select">Test 1, Test 2,...itp</p>

próbuję korzystać z each ale mi coś to nie idzie ;/

Edit:

$('div.filtr:has(div.filtrs .active) p.select_filter').css('text-decoration','underline');

Takie cos podkreśla mi p.select_filter w divie w którym jest coś wybrane, tylko jak w zawartości <p> wstawić nazwy wybranych rzeczy ?
b4rt3kk
  1. $('.flitration').click(function(){
  2. var tekst = $(this).children('p').children('strong').html();
  3. $('#filter_producer_select').html(tekst);
  4. });


Nie napisałeś, w którym momencie ma się zmienić ten tekst, więc założyłem, że po kliknięciu na div-a któregoś.
Elber
Niestety przy ładowaniu strony, po kliknięciu w pozycje strona się przeładowuje smile.gif I wybranych elementów może być kilka, czyli po , musiałyby być smile.gif
b4rt3kk
Cytat(Elber @ 22.01.2013, 11:34:23 ) *
Niestety przy ładowaniu strony, po kliknięciu w pozycje strona się przeładowuje smile.gif I wybranych elementów może być kilka, czyli po , musiałyby być smile.gif


Bo klikasz w linka, a kliknij w div-a.

Zresztą opakuj cały skrypt w:

  1. <script type="text/javascript">
  2. $(function(){
  3.  
  4. $('.flitration').click(function(){
  5. var tekst = $(this).children('p').children('strong').html();
  6. $('#filter_producer_select').html(tekst);
  7. });
  8.  
  9. });
Elber
Tak tylko mi chodzi o to, że ta nazwa ma się podmienić w momencie ładowania strony smile.gif nie po kliknięciu wink.gif
b4rt3kk
Cytat(Elber @ 22.01.2013, 12:08:50 ) *
Tak tylko mi chodzi o to, że ta nazwa ma się podmienić w momencie ładowania strony smile.gif nie po kliknięciu wink.gif


Było tak pisać w pierwszym poście.

  1. $(function() {
  2.  
  3. var tekst = '';
  4.  
  5. $('.active').each(function() {
  6. tekst += $(this).html();
  7. });
  8.  
  9. $('#filter_producer_select').html(tekst);
  10.  
  11. });
Elber
Prawie biggrin.gif bo w każdym div'ie jest inne id czyli w tym przypadku #filter_producer_select w każdym div'ie jest inne

  1. <div class="filtr">
  2. <h3>Cena</h3>
  3. <div class="filtrs">
  4. <p class="select_filter" id="filter_price_select" style="text-decoration: underline;">--- wybierz ---</p>
  5. <div class="filter-checkboxes">
  6. <input type="hidden" name="tier" id="tier" value="0-99999">
  7. <p><a href="od0do71,1" class="price">od 0 do 71 PLN</a></p>
  8. <p><a href="od71do143,1" class="price">od 71 do 143 PLN</a></p>
  9. <p><a href="od0do99999,1" class="price active">Wszystkie</a></p>
  10. </div>
  11. </div>
  12. </div>
  13. <div class="filtr">
  14. <h3>Producent</h3>
  15. <div class="filtrs">
  16. <p class="select_filter" id="filter_producer_select">--- wybierz ---</p>
  17. <div class="filter-checkboxes">
  18. <div class="filtration">
  19. <p><a href="producent,1">Producent</a></p>
  20. </div>
  21. </div>
  22. </div>
  23. </div>
  24.  
  25. <div class="filtr">
  26. <h3>Kolor Abażuru / Klosza</h3>
  27. <div class="filtrs">
  28. <p class="select_filter">--- wybierz ---</p>
  29. <div class="filter-checkboxes">
  30. <div class="filtration">
  31. <p><a href="g2-5">Biały</a></p>
  32. </div>
  33. <div class="filtration">
  34. <p><a href="g2-4">Grafitowy</a></p>
  35. </div>
  36. </div>
  37. </div>
  38. </div>
  39. <div class="filtr">
  40. <h3>Dostępne wykończenia</h3>
  41. <div class="filtrs">
  42. <p class="select_filter">--- wybierz ---</p>
  43. <div class="filter-checkboxes">
  44. <div class="filtration">
  45. <p><a href="g1-2">Buk Naturalny</a></p>
  46. </div>
  47. <div class="filtration">
  48. <p><a href="g1-3">Olcha</a></p>
  49. </div>
  50. <div class="filtration">
  51. <p><a href="g1-1">Sosna</a></p>
  52. </div>
  53. </div>
  54. </div>
  55. </div>


Tak to w całosci wygląda, i mogę dodawać kolejne filtry czyli ręczne wpisanie #id <p> nie wchodzi w grę, musi je wyciągnąć z danego div'a
b4rt3kk
Cytat(Elber @ 22.01.2013, 12:26:07 ) *
Prawie biggrin.gif bo w każdym div'ie jest inne id czyli w tym przypadku #filter_producer_select w każdym div'ie jest inne

  1. <div class="filtr">
  2. <h3>Cena</h3>
  3. <div class="filtrs">
  4. <p class="select_filter" id="filter_price_select" style="text-decoration: underline;">--- wybierz ---</p>
  5. <div class="filter-checkboxes">
  6. <input type="hidden" name="tier" id="tier" value="0-99999">
  7. <p><a href="od0do71,1" class="price">od 0 do 71 PLN</a></p>
  8. <p><a href="od71do143,1" class="price">od 71 do 143 PLN</a></p>
  9. <p><a href="od0do99999,1" class="price active">Wszystkie</a></p>
  10. </div>
  11. </div>
  12. </div>
  13. <div class="filtr">
  14. <h3>Producent</h3>
  15. <div class="filtrs">
  16. <p class="select_filter" id="filter_producer_select">--- wybierz ---</p>
  17. <div class="filter-checkboxes">
  18. <div class="filtration">
  19. <p><a href="producent,1">Producent</a></p>
  20. </div>
  21. </div>
  22. </div>
  23. </div>
  24.  
  25. <div class="filtr">
  26. <h3>Kolor Abażuru / Klosza</h3>
  27. <div class="filtrs">
  28. <p class="select_filter">--- wybierz ---</p>
  29. <div class="filter-checkboxes">
  30. <div class="filtration">
  31. <p><a href="g2-5">Biały</a></p>
  32. </div>
  33. <div class="filtration">
  34. <p><a href="g2-4">Grafitowy</a></p>
  35. </div>
  36. </div>
  37. </div>
  38. </div>
  39. <div class="filtr">
  40. <h3>Dostępne wykończenia</h3>
  41. <div class="filtrs">
  42. <p class="select_filter">--- wybierz ---</p>
  43. <div class="filter-checkboxes">
  44. <div class="filtration">
  45. <p><a href="g1-2">Buk Naturalny</a></p>
  46. </div>
  47. <div class="filtration">
  48. <p><a href="g1-3">Olcha</a></p>
  49. </div>
  50. <div class="filtration">
  51. <p><a href="g1-1">Sosna</a></p>
  52. </div>
  53. </div>
  54. </div>
  55. </div>


Tak to w całosci wygląda, i mogę dodawać kolejne filtry czyli ręczne wpisanie #id <p> nie wchodzi w grę, musi je wyciągnąć z danego div'a


  1. $(function() {
  2. $('.filtr').each(function() {
  3.  
  4. var tekst = '';
  5.  
  6. $(this).children('.filter-checkboxes').children('p').chlidren('.active').each(function() {
  7. tekst += $(this).html();
  8. });
  9.  
  10. $(this).children('.filtrs').children('p').html(tekst);
  11.  
  12. });
  13. });

Elber
Super działa smile.gif Wielkie dzięki, w moim przypadku zamiast children() musiałem dać find() smile.gif

Pozdrawiam
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.