Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML]Informacja dla pustych elementów.
Forum PHP.pl > Forum > Przedszkole
Generic
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/
Comandeer
Podpowiem: $('.page').each. Resztę dopowie Ci manual jQuery wink.gif
slash^
$('.page:empty').html( 'is empty')
I zadnych petli nie trzeba
https://jsfiddle.net/hcq25nwh/1/
trueblue
  1. div.page:empty:before{
  2. content:'pusty';
  3. }
Comandeer
@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...
Generic
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/
Comandeer
Po clicku na przycisk jeszcze raz odpal kod sprawdzający divy
Generic
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/
Comandeer
Hmm... Spacje, znak nowej linii... Ten element musi być całkowicie pusty.
Generic
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?
Comandeer
Po prostu usunąć wszystko, co jest w rodzicu danego przycisku (button.parent.html('')).
Generic
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/
Comandeer
I wgl Cię nie zastanowiło, że linijkę wyżej w kodzie parent jest funkcją i działa?

BTW zamiast $('button') użyj $(this).
Generic
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/
Comandeer
Poczytaj o $.fn.each
Generic
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/
koodo218
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
Generic
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.
koodo218
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ż).
Generic
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/
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.