jQuery semplifica la rimozione dei nodi dal DOM. Ma come si rimuove qualcosa dall'oggetto jQuery?Rimuovi oggetto dall'oggetto jQuery
risposta
Se si sta parlando della rimozione dei nodi dall'oggetto jQuery, utilizzare le funzioni filter
o . See here for more.
Come utilizzare 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.
});
o
var ps = $('p');
//Removes all elements from the set of matched elements that
//do not match the specified expression(s).
ps = ps.filter('.selector');
Come utilizzare not
:
var ps = $('p');
//Removes elements matching the specified expression
//from the set of matched elements.
ps = ps.not('.selector');
@ geowa4 - grazie per la risposta. Sai se il filtro rimuove un nodo dall'oggetto a livello globale o solo locale alla sua funzione? –
Una cosa che mi ha fatto inciampare è che in realtà non rimuoverà nulla da un selettore memorizzato nella cache a meno che tu non ti riassegni. Quindi hai bisogno di ps = ps.filter (function() {// stuff}); – SimplGy
<ul>
<li class="1" />
<li class="2" />
<li class="3" />
<li class="4" />
<li class="5" />
</ul>
filtro itera sulla raccolta oggetto jQuery. Per ciascuno degli elementi: restituire true
all'interno di filter()
per mantenere l'elemento corrente nella raccolta di oggetti jQuery. Restituire false
per rimuovere l'oggetto corrente dalla raccolta di oggetti jQuery.
$("li").filter(function()
{
if (this.className == "1" || this.className == "2") return true;
return false;
});
In questo caso; la funzione anonima eseguita da filter()
restituirà true per l'elemento di elenco che ha la classe e/o , a sua volta rimuovendo gli ultimi tre elementi di elenco dalla raccolta di oggetti jQuery.
Un esempio pratico:
<ul>
<li class="1" />
<li class="2" />
<li class="3" />
<li class="4" />
<li class="5" />
</ul>
Questo frammento aggiunge una classe ("blu") per la lista non ordinata. Quindi evidenzia i primi due elementi dell'elenco. Poi attacca un click-gestore per i primi due della lista-voci:
$(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, restituirà false ogni volta. stai scorrendo su 'ul's, non su' li' che hanno i nomi di classe. – geowa4
Male-scoreggia :) Grazie per l'heads-up. – roosteronacid
Come notato già, $.filter()
è una grande opzione per il filtraggio dei dati. Notare anche che the jQuery object can be handled like an array e come tale, è possibile utilizzare metodi di array come splice()
su di esso.
var people = $(".people");
people.splice(2,1); // Remove 1 item starting from index 2
@ geowa4: Leggi http://www.learningjquery.com/2008/12/peeling-away-the-jquery-wrapper – Sampson
@Jonathan: l'hai letto? bc non dice che è un array. puoi ottenerne uno, certo, e jQuery può comportarsi come un array in qualche modo. ma non è ancora un array - una distinzione importante. infatti, alcune delle funzioni dell'array funzionano sull'oggetto jQuery, come indicato nel mio primo commento. – geowa4
@ geowa4: Sì, l'ho letto. So che non è un array (tecnicamente), quindi mi scuso per le mie povere parole.Quello che intendevo comunicare era che puoi trattarlo come un array - come il mio esempio ha sottolineato. – Sampson
- 1. PHP: Rimuovi oggetto dall'array
- 2. jquery rimuovi duplicato li
- 3. jQuery - rimuovi diverse classi
- 4. Jquery Rimuovi immagine
- 5. Rimuovi elemento dalla oggetto JSON
- 6. jquery rimuovi elemento figlio diretto
- 7. JavaScript/JQuery rimuovi dal tabindex
- 8. jquery droppable rimuovi rimossi caduti
- 9. Rimuovi stringa da stringa jquery
- 10. Rimuovi elementi onclick (incluso il pulsante Rimuovi stesso) con jQuery
- 11. HTML5 Rimuovi oggetto disegno precedente su tela
- 12. Rimuovi il bordo dall'elemento oggetto in IE11
- 13. Rimuovi fuso orario da un oggetto moment.js
- 14. Rimuovi più data-attributi HTML5 con jQuery
- 15. Rimuovi l'evidenziazione sul controllo slider jQuery
- 16. Rimuovi i paragrafi "vuoti" con jQuery
- 17. Rimuovi il primo carattere con jQuery
- 18. Javascript/jQuery: rimuovi forma/percorso dalla tela
- 19. Jquery Calendario completo Rimuovi barra di scorrimento
- 20. Jquery Ogni oggetto JSON
- 21. jQuery Notazione array oggetto
- 22. Inserisci oggetto (jquery) ritardo?
- 23. Oggetto DOM JavaScript su oggetto jQuery
- 24. jQuery restituisce la chiamata AJAX [oggetto oggetto]
- 25. jQuery OTTENERE come oggetto jQuery traversable
- 26. Rimuovi tutto tranne 1 oggetto nell'elenco basato sul raggruppamento
- 27. jQuery 1.9.0 interruzioni $ .attrFn oggetto
- 28. jQuery loop through data() oggetto
- 29. modale bootstrap come oggetto jquery
- 30. Stampa oggetto jQuery come HTML
Che tipo di cose stai cercando di rimuovere? – acrosman
@acrosman - Nulla in particolare. Voglio solo saperne di più su come jQuery fa la sua magia. C'è una buona documentazione sul sito jQuery riguardante l'API, ma (oltre a passare attraverso la fonte) non ho visto molta documentazione sul funzionamento interno dell'oggetto jQuery. –