![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
Pytanie do specjalistów od jQuery.
Chciałbym posegregować elementy według pewnej kolejności którą że tak powiem mam w tablicy. Wybierając kolejno z tablicy identyfikator chę wyszukać element posiadający takie id bądź nazwę i przenieść we wskazane miejsce. Brzmi może dzwnie ale ... cóż tak chciałbym zrobić. Samo znajdowanie elementu to nie problem, problem jak teraz wskazać "rodzica" tego elementu i go wyciągnąć wraz z całą zawartością (.html()). Przykład:
czyli jeśli w tablicy znajduje się określony string wybierz TEN element/blok $('div .layered-navigation,.option-block').html() tylko nie wiem jak zrobić z niego 'this' jeśli znajduje się w nim lub jego dziecku wskazany string. mam nadzieję, że się jasno wyraziłem (IMG:style_emoticons/default/wink.gif) W międzyczasie znalazłem to: https://api.jquery.com/child-selector/ ... ale nie do końca czaję ... pozdrawiam amator Ten post edytował phpamator 1.09.2017, 21:16:39 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Chcesz wybrać elementy, których dzieci mają określone id lub nazwę, czy elementy, które posiadają w innerHTML jakiś string?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
Dziecko dziecka zawiera tekst i po tym tekście rozpoznaję, następnie muszę zebrać innerHtml z parenta tego dziecka dziecka
czyli tak: czyli znajduje "mój string" i muszę zdefiniować to co jest jego rodzicem i dopiero zebrać cały html() rodzica i przenieść. ooo ale jeśli mogę wybrać rodzica który ma dziecko z określonym stringiem to chyba też będzie ok ? Ten post edytował phpamator 1.09.2017, 21:35:30 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Skoro dzieci Ciebie nie interesują, to sprawdzałbym każdego rodzica pod względem zawartości stringu w innerText. Wtedy nie musisz się zagłębiać w dzieci.
Chyba, że tekst ma być określonym dziecku/tagu. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem jak "sprawdzić innerHtml rodzica pod względem zawartości stringu" ...
Ten post edytował phpamator 1.09.2017, 23:00:04 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie rodzica, innerText rodzica.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
wymyśliłem tak:
co źle zrobiłem ? http://jsfiddle.net/SayjQ/59/ to mi pomogło trochę ... Ten post edytował phpamator 1.09.2017, 23:35:12 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Kod span.filter-title:contains('"+blockName+"')
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaa hahahah no to ci powiem, że nic z tego, nie działa (IMG:style_emoticons/default/wink.gif) Za to działa tak:
Ten post edytował phpamator 2.09.2017, 19:54:22 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A ja Ci powiem, że działa zarówno tak jak podałeś, jak i:
ale Ty pewnie pomieszałeś kolejność cudzysłowów. A skoro chcesz pobrać od razu rodzica, to tak będzie czytelniej:
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
albo `.closest('div.layered-navigation.option-block')`
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
Zdecydowanie nie działało ale nie będę się sprzeczał, nie uwzględniłeś zewnętrznych '' i napisałeś span.filter-title:contains('"+blockName+"')
dlatego poniższy kod robił NIC (IMG:style_emoticons/default/wink.gif) var block = jQuery('span.filter-title:contains('"+blockName+"')').parent().parent().html(); aaaale po zmianie owszem, działa. Bardziej podoba mi się jednak ta druga forma (IMG:style_emoticons/default/wink.gif) chociaż wersja a'la python_000 też jest ok (IMG:style_emoticons/default/smile.gif) Dzięki panowie (IMG:style_emoticons/default/smile.gif) to jednak było prostsze niż początkowo myślałem, przy okazji nauczyłem się co nieco jak można zmyślnie łączyć niektóre parametry, żeby wyszukać interesujący element (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie dodałem również nawiasów, jQuery, itd. Bez przesady. Podałem Ci fragment, w którym jest błąd.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
Działa, działa ale ..... coś nie do końca jak oczekiwałem.
Popatrzcie i podpowiedzcie proszę co źle zrobiłem albo jaka jest szansa, że to wogóle będzie robiło to o czym mówiłem.
Może przykład jest beznadziejnie prosty może wręcz banalny ale jeszcze nie czaję tego. Ten post edytował phpamator 4.09.2017, 14:29:38 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Uprościłbym pętlę skoro korzystasz z each.
Przecież jeśli przenosisz element w innej miejsce, to i tak nie szukasz go w pętli ponownie. Jeśli przeniosłeś Brands, to w kolejnej iteracji szukasz Price. Jak się objawia ta usterka? |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
i `block.lenght > 0` bo zdaje się że jQ i tak zwróci obiekt ale bez rezultatów.
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
Uprościłbym pętlę skoro korzystasz z each.
Przecież jeśli przenosisz element w innej miejsce, to i tak nie szukasz go w pętli ponownie. Jeśli przeniosłeś Brands, to w kolejnej iteracji szukasz Price. Jak się objawia ta usterka? Tak teoretycznie miało to działać ale ... z jakiegoś powodu podczas wykonywania pętli (wkleiłem tam console.log() żeby widzieć ile z listy przeszło a ile nie przeszło bo może tak być lista/tablica nie zawiera wszystkich tylko niektóre nazwy) jakby przestaje kolejno dodawać/przenosić elementy, działa dobrze praktycznie tylko dla pierwszych 2 czyli Brands i Prices. Powinienem widzieć też jakie zostały pominięte wraz z nazwami a skrypt pokazuje mi jedną tylko nazwę z ilością powtórzeń. Czyli co, usunąć indexy, zostawić tylko same nazwy w tablicy mówisz ? |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Indeksy swoją drogą. Wtedy blockName jest dostępny bezpośrednio.
Wprowadziłeś warunek, o którym pisał Pyton_000? |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 328 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) ![]() ![]() |
Zmodyfikowałem i faktycznie, lepiej działa i widzę że prawidłowo teraz sortuje a jeśli niema na liście zostawia.
Tak dodałem warunek "a'la python_ooo" ale z nim coś nie halo. Ten post edytował phpamator 4.09.2017, 15:20:22 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A nie prościej by było napisać, co nadal nie działa?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:18 |