Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][Java][JQUERY] Jak odwołąć się w drzewie DOM do innego tagu
Forum PHP.pl > Forum > Przedszkole
-alien1983-
Mam funkcje JQUERY która pokazuje mi i chowa znaczniki <p>
Problem jest taki że nie potrafię dojść do tego jak użyć funkcji "this" aby zlikwidować następujący błąd: poniższa funkcja nie wie do którego art'a się odwołać i odwołuje się do wszystkich. Wydaje mi się, że trzeba by było coś z .parent wykombinować "$(this).parent().parent().parent().next("p").show("normal");" ?

Ogólnie trzeba się cofnąć z przycisku "więcej" <span> i wejść do <p> w tym samym art. Może koś wie jak to zrobić?

  1. <div class="main"><!-- Content Main -->
  2. <div><!-- Art #1 -->
  3. <div>
  4. <div>
  5. <div class="imgCnt01"></div>
  6. </div>
  7. <div>
  8. <H1>text</H1>
  9. <H2>text2</H2>
  10. <H3>text3</H3>
  11. </div>
  12. <div></div>
  13. </div>
  14. <div>
  15. <p>TEST</p>
  16. <p style="display: none;">TEST 2.</p>
  17. <p style="display: none;">TEST 3</p>
  18. </div>
  19. <div>
  20. <div>
  21. text0
  22. </div>
  23. <div>
  24.  
  25. </div>
  26. <div>
  27. <span>Wiecej</span>
  28. </div>
  29. </div>
  30. </div><!-- Art #1 -->
  31. <div><!-- Art #2 -->
  32. <div>
  33. <div>
  34. <div class="imgCnt01"></div>
  35. </div>
  36. <div>
  37. <H1>text</H1>
  38. <H2>text2</H2>
  39. <H3>text3</H3>
  40. </div>
  41. <div></div>
  42. </div>
  43. <div>
  44. <p>TEST</p>
  45. <p style="display: none;">TEST2</p>
  46. <p style="display: none;">TEST3/p>
  47. </div>
  48. <div>
  49. <div>
  50. text0
  51. </div>
  52. <div>
  53.  
  54. </div>
  55. <div>
  56. <span>Wiecej</span>
  57. </div>
  58. </div>
  59. </div><!-- Art #2 -->
  60. </div><!-- Content Main -->


questionmark.gifquestionmark.gifquestionmark.gif?
}
}
);
}
);
</script>
">
<script type="text/javascript">

$(document).ready(
function()
{
$(".main div").children("span").click(
function()
{



if($(".main > div > div >").next("p").is(':visible')){
$(".main > div > div >").not(this).next("p:visible").hide("normal");
}else{
$(".main > div > div >").next("p").show("normal");
//$(this).parent().parent().parent().next("p").show("normal"); questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?
}
}
);
}
);
</script>
lobopol
Kod Ci się rozjechał i jest nieczytelny. Ogólnie dodaj sobie jakieś klasy i możesz do cofnięcia użyć parents, a następnie find aby znaleźć p
jepek
Wrzuć to na http://jsfiddle.net/ to Ci pomożemy, bo tak to męczarnia straszna.
-alien1983-
http://jsfiddle.net/alien1983/t6cRQ/1/
jepek
Ale mega burdel. Żeby bawić się strukturą DOM wypadałoby najpierw ją zbudować w należyty sposób. A u Ciebie jeden wielki bajzel. Nie mówiąc o strukturze htmla, to w css też niezłe kombinacje. Postaraj się na początek o porządek w strukturze zanim weźmiesz się za jQuery.
PrinceOfPersia
Cytat
Problem jest taki że nie potrafię dojść do tego jak użyć funkcji "this" aby zlikwidować następujący błąd: poniższa funkcja nie wie do którego art'a się odwołać i odwołuje się do wszystkich

1. nadaj divom odpowiednie klasy CSS.
2. zamiast parent (bez s), użyj funkcji parents: http://api.jquery.com/parents/
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.