Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][HTML]Informacja dla pustych elementów.
Generic
post
Post #1





Grupa: Zarejestrowani
Postów: 224
Pomógł: 0
Dołączył: 31.10.2012

Ostrzeżenie: (10%)
X----


Witam. Mam divy, który każdy z nich ma identyczną nazwę klasy. Potrzebuję aby w divach w których nic się nie znajduje pojawiała się informacja że jest pusty. Poniżej zamieszczam kod w którym niestety coś zrobiłem nie tak ponieważ jak widać nie działa i brakuje mi już pomysłów. Czekam na pomoc i z góry dziękuję.

https://jsfiddle.net/hcq25nwh/
Go to the top of the page
+Quote Post
Comandeer
post
Post #2





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Podpowiem: $('.page').each. Resztę dopowie Ci manual jQuery wink.gif


--------------------
Go to the top of the page
+Quote Post
slash^
post
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

Ostrzeżenie: (0%)
-----


$('.page:empty').html( 'is empty')
I zadnych petli nie trzeba
https://jsfiddle.net/hcq25nwh/1/

Ten post edytował slash^ 23.12.2015, 20:46:42


--------------------
d(^^)b
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. div.page:empty:before{
  2. content:'pusty';
  3. }


--------------------
Go to the top of the page
+Quote Post
Comandeer
post
Post #5





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


@trueblue akurat ::before dla treści, która nie jest jedynie element prezentacji wizualnej, tak nie bardzo pasuje. Nie wiem czy jakieś AT nie ma z tym dodatkowo problemów.

Natomiast co do :empty - wciąż zapominam o niektórych nowościach z CSS3...


--------------------
Go to the top of the page
+Quote Post
Generic
post
Post #6





Grupa: Zarejestrowani
Postów: 224
Pomógł: 0
Dołączył: 31.10.2012

Ostrzeżenie: (10%)
X----


Dzięki za tak szybki odzew. Jest jeszcze jeden problem, który przedstawiłem w powyższym kodzie. Problem polega na tym że po wyczyszczeniu diva z elementów, które da się usunąć z danego diva nie pojawia się informacja że dany div stał się pusty.

https://jsfiddle.net/hcq25nwh/6/

Ten post edytował Generic 23.12.2015, 22:32:57
Go to the top of the page
+Quote Post
Comandeer
post
Post #7





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Po clicku na przycisk jeszcze raz odpal kod sprawdzający divy


--------------------
Go to the top of the page
+Quote Post
Generic
post
Post #8





Grupa: Zarejestrowani
Postów: 224
Pomógł: 0
Dołączył: 31.10.2012

Ostrzeżenie: (10%)
X----


Cytat(Comandeer @ 23.12.2015, 23:41:07 ) *
Po clicku na przycisk jeszcze raz odpal kod sprawdzający divy


Działa. Jednak gdy w jednym z tych divów znajduje się inny div i po kliknięciu delete usuwa się to informacja o pustym divie nie wyświetla się. Czy coś przeoczyłem i coś nie zostało usunięte?

https://jsfiddle.net/hcq25nwh/12/

Ten post edytował Generic 24.12.2015, 00:51:50
Go to the top of the page
+Quote Post
Comandeer
post
Post #9





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Hmm... Spacje, znak nowej linii... Ten element musi być całkowicie pusty.


--------------------
Go to the top of the page
+Quote Post
Generic
post
Post #10





Grupa: Zarejestrowani
Postów: 224
Pomógł: 0
Dołączył: 31.10.2012

Ostrzeżenie: (10%)
X----


Cytat(Comandeer @ 24.12.2015, 00:51:36 ) *
Hmm... Spacje, znak nowej linii... Ten element musi być całkowicie pusty.


Tak to jest to tylko czy można to jakoś obejść bo nie chciałbym żeby w kodzie było to wszystko pozlepiane ponieważ później nie będę wiedział co i jak?
Go to the top of the page
+Quote Post
Comandeer
post
Post #11





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Po prostu usunąć wszystko, co jest w rodzicu danego przycisku (button.parent.html('')).


--------------------
Go to the top of the page
+Quote Post
Generic
post
Post #12





Grupa: Zarejestrowani
Postów: 224
Pomógł: 0
Dołączył: 31.10.2012

Ostrzeżenie: (10%)
X----


Cytat(Comandeer @ 24.12.2015, 11:29:11 ) *
Po prostu usunąć wszystko, co jest w rodzicu danego przycisku (button.parent.html('')).


Niestety nie działa: https://jsfiddle.net/hcq25nwh/15/
Go to the top of the page
+Quote Post
Comandeer
post
Post #13





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


I wgl Cię nie zastanowiło, że linijkę wyżej w kodzie parent jest funkcją i działa?

BTW zamiast $('button') użyj $(this).


--------------------
Go to the top of the page
+Quote Post
Generic
post
Post #14





Grupa: Zarejestrowani
Postów: 224
Pomógł: 0
Dołączył: 31.10.2012

Ostrzeżenie: (10%)
X----


Cytat(Comandeer @ 29.12.2015, 00:39:39 ) *
I wgl Cię nie zastanowiło, że linijkę wyżej w kodzie parent jest funkcją i działa?

BTW zamiast $('button') użyj $(this).


Trochę poczytałem i udało mi się zrobić aby sprawdzało mi to z pominięciem spacji dodając !$.trim. Oczywiście sprawdziłem to i działa, ale problem w tym że w moim przykładzie odnoszę się do klasy i narzuca ona dla wszystkich elementów informacje o tym że element jest pusty nawet gdy zawiera coś w sobie. Potrzebuje pomysłu jak zrobić aby pojawiała się informacja tylko dla pustych klas. Niestety nie mogę wykorzystać do tego konkretnych id bo nie wiem ile ich będzie i jakie będą nosić nazwy znam tylko ich klasę. Wiem tylko gdzie leży błąd $('.page').text jednak nie mam pomysłu jak to naprawić ponieważ nie mogę użyć this ponieważ nie jest on zdefiniowany.


https://jsfiddle.net/hcq25nwh/17/

Ten post edytował Generic 29.12.2015, 03:10:36
Go to the top of the page
+Quote Post
Comandeer
post
Post #15





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Poczytaj o $.fn.each


--------------------
Go to the top of the page
+Quote Post
Generic
post
Post #16





Grupa: Zarejestrowani
Postów: 224
Pomógł: 0
Dołączył: 31.10.2012

Ostrzeżenie: (10%)
X----


Cytat(Comandeer @ 29.12.2015, 08:15:17 ) *
Poczytaj o $.fn.each


Dzięki, pomogło smile.gif Mógłbyś mi jeszcze napisać dlaczego napis wyświetla się z pominięciem ustawień w css?

https://jsfiddle.net/hcq25nwh/22/
Go to the top of the page
+Quote Post
koodo218
post
Post #17





Grupa: Zarejestrowani
Postów: 114
Pomógł: 25
Dołączył: 22.11.2015

Ostrzeżenie: (0%)
-----


Cytat(Generic @ 29.12.2015, 17:28:48 ) *
Dzięki, pomogło smile.gif Mógłbyś mi jeszcze napisać dlaczego napis wyświetla się z pominięciem ustawień w css?

https://jsfiddle.net/hcq25nwh/22/

Style css są ustawione dla akapitu, ty natomiast w zmiennej info przechowujesz jedynie tekst, nie znacznik.

Możesz to rozwiązać chociażby poprzez taką instrukcję:
[JAVASCRIPT] pobierz, plaintext
  1. var info = $('p').html();
  2. info = "<p>"+info+"</p>";
[JAVASCRIPT] pobierz, plaintext


Ten post edytował koodo218 29.12.2015, 18:28:38


--------------------
Słaba znajomość (ale się staram): HTML5, CSS3, JavaScript, SQL, Access
Go to the top of the page
+Quote Post
Generic
post
Post #18





Grupa: Zarejestrowani
Postów: 224
Pomógł: 0
Dołączył: 31.10.2012

Ostrzeżenie: (10%)
X----


Cytat(koodo218 @ 29.12.2015, 18:26:23 ) *
Style css są ustawione dla akapitu, ty natomiast w zmiennej info przechowujesz jedynie tekst, nie znacznik.

Możesz to rozwiązać chociażby poprzez taką instrukcję:
[JAVASCRIPT] pobierz, plaintext
  1. var info = $('p').html();
  2. info = "<p>"+info+"</p>";
[JAVASCRIPT] pobierz, plaintext


A jest jakiś sposób żeby połączyć te znaczniki tak aby znajdowały się razem w zmiennej? Bo jeśli nie to wystarczy w sumie dać "<p>"Informacja ktora chce"</p>" bez kombinowania.
Go to the top of the page
+Quote Post
koodo218
post
Post #19





Grupa: Zarejestrowani
Postów: 114
Pomógł: 25
Dołączył: 22.11.2015

Ostrzeżenie: (0%)
-----


Cytat(Generic @ 29.12.2015, 18:39:22 ) *
A jest jakiś sposób żeby połączyć te znaczniki tak aby znajdowały się razem w zmiennej? Bo jeśli nie to wystarczy w sumie dać "<p>"Informacja ktora chce"</p>" bez kombinowania.

Oprócz sposobu z #17 możesz też pozbyć się końcówki
var info = $('p').html();
wtedy w zmiennej masz tylko i wyłącznik znacznik p z tekstem, wraz z odziedziczonymi stylami (lokalnymi również).


--------------------
Słaba znajomość (ale się staram): HTML5, CSS3, JavaScript, SQL, Access
Go to the top of the page
+Quote Post
Generic
post
Post #20





Grupa: Zarejestrowani
Postów: 224
Pomógł: 0
Dołączył: 31.10.2012

Ostrzeżenie: (10%)
X----


Cytat(koodo218 @ 29.12.2015, 18:43:46 ) *
Oprócz sposobu z #17 możesz też pozbyć się końcówki
var info = $('p').html();
wtedy w zmiennej masz tylko i wyłącznik znacznik p z tekstem, wraz z odziedziczonymi stylami (lokalnymi również).


działa, tylko czemu informacja wyświetla się tylko w jednym ostatnim przypadku?

https://jsfiddle.net/hcq25nwh/24/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 16:59