jQuery ułatwia usunięcie węzłów z DOM. Ale jak usunąć coś z obiektu jQuery?Usuń element z obiektu jQuery
Odpowiedz
Jeśli mówisz o usuwaniu węzłów z obiektu jQuery, użyj funkcji filter
lub not
. See here for more.
Jak korzystać filter
:
var ps = $('p');
//Removes all elements from the set of matched elements that do
//not match the specified function.
ps = ps.filter(function() {
//return true to keep it, false to discard it
//the logic is up to you.
});
lub
var ps = $('p');
//Removes all elements from the set of matched elements that
//do not match the specified expression(s).
ps = ps.filter('.selector');
Jak korzystać not
:
var ps = $('p');
//Removes elements matching the specified expression
//from the set of matched elements.
ps = ps.not('.selector');
@ geowa4 - dzięki za odpowiedź. Czy wiesz, czy filtr usuwa węzeł z obiektu globalnie, czy tylko lokalnie do jego funkcji? –
Jedną z rzeczy, które mnie potknęły, jest fakt, że nie usunie ona niczego z buforowanego selektora, chyba że zmienisz przydział. Potrzebujesz więc ps = ps.filter (function() {// stuff}); – SimplGy
<ul>
<li class="1" />
<li class="2" />
<li class="3" />
<li class="4" />
<li class="5" />
</ul>
Filtr iteruje obiektu kolekcji jQuery. Dla każdego elementu: Zwróć true
wewnątrz filter()
, aby zachować bieżący element w kolekcji obiektów jQuery. Zwróć false
, aby usunąć bieżący obiekt z kolekcji obiektów jQuery.
$("li").filter(function()
{
if (this.className == "1" || this.className == "2") return true;
return false;
});
W tym przypadku; anonimowa funkcja wykonana przez filter()
zwróci true dla elementu listy, który ma klasę i/lub , z kolei usuwa ostatnie trzy elementy listy z kolekcji obiektów jQuery.
Praktyczny przykład:
<ul>
<li class="1" />
<li class="2" />
<li class="3" />
<li class="4" />
<li class="5" />
</ul>
Ten fragment dodaje klasę ("niebieski") do listy nieuporządkowanej. Następnie podświetla dwa pierwsze elementy listy. Następnie przykłada click-obsługi do dwóch pierwszych lista-elementów:
$(function()
{
$("ul").addClass("blue").find("li").filter(function()
{
if (this.className == "1" || this.className == "2") return true;
return false;
}).addClass("highlight").click(function()
{
alert("I am highlighted!");
});
});
fyi, która za każdym razem zwróci fałsz. przeplatasz 'ul's, a nie' li's które mają nazwy klas. – geowa4
Brain-fart :) Dzięki za heads-up. – roosteronacid
Jak już wspomniano, $.filter()
jest świetnym rozwiązaniem do filtrowania danych. Zauważ także, że the jQuery object can be handled like an array, i jako takie, możesz użyć na nim metod tablicy, takich jak splice()
.
var people = $(".people");
people.splice(2,1); // Remove 1 item starting from index 2
@ geowa4: Przeczytaj http://www.learningjquery.com/2008/12/peeling- tam-the-jquery-wrapper – Sampson
@ Jonathan: czy to przeczytałeś? bc nie mówi, że to w ogóle tablica. można uzyskać jeden, na pewno, a jQuery może zachowywać się jak tablica na kilka sposobów. ale nadal nie jest to tablica - ważne rozróżnienie. w rzeczywistości kilka funkcji tablicowych działa na obiekcie jQuery, jak zauważono w moim pierwszym komentarzu. – geowa4
@ geowa4: Tak, przeczytałem. Wiem, że to nie jest tablica (technicznie), więc przepraszam za moje słabe sformułowanie.To, co chciałem przekazać, to to, że możesz traktować to jak tablicę - jak wskazał mój przykład. – Sampson
- 1. jQuery: Usuń klasę, jeśli kliknięto inny element.
- 2. jquery plugin usuń z elementu
- 3. usuń element z tablicy matlab
- 4. Usuń element z oneToMany relacji
- 5. Usuń pusty element z tablicy
- 6. jquery elementy usuń html wewnątrz zmiennej (obiektu jQuery)
- 7. Usuń tekst z jQuery
- 8. jQuery usuń obiekt z kolekcji obiektów
- 9. JavaScript DOM usuń element
- 10. JQuery Usuń() nie działa
- 11. PHP - Usuń element XML
- 12. Usuń ciąg z jquery stringów
- 13. jQuery usuń opcje z wybierz
- 14. Usuń pierwszy znak z jQuery
- 15. Usuń zduplikowany element z tablicy JavaScript
- 16. Usuń element z tablicy stanów w odpowiedzi
- 17. Usuń element ith z C++ std :: vector
- 18. Usuń pierwszy element z $ @ w bash
- 19. Usuń konkretny element z tablicy w Knockout.JS
- 20. PowerShell Usuń element [0] z tablicy
- 21. javascript - usuń element tablicy pod warunkiem
- 22. jQuery - Pobierz element z tablicy jako element jQuery?
- 23. Usuń element dla niektórych rozmiarów ekranów
- 24. skróć/usuń z podanej klasy obiektu
- 25. Podczas długiego kliknięcia usuń element
- 26. Usuń ostatni Dołącz elementem jquery
- 27. Usuń pierwszy element tablicy VBA
- 28. znaleźć element względny z jQuery
- 29. Pomiń element z $ .map jQuery
- 30. Używanie obiektu elementu z metodą jQuery?
Jakie rzeczy próbujesz usunąć? – acrosman
@acrosman - Nic w szczególności. Chcę tylko dowiedzieć się więcej o tym, jak jQuery robi magię. Na stronie jQuery znajduje się dobra dokumentacja dotycząca API, ale (poza przechodzeniem przez źródło) nie widziałem zbyt wiele dokumentacji na temat wewnętrznych działań obiektu jQuery. –