jQuery facilita la eliminación de nodos del DOM. Pero, ¿cómo se elimina algo del objeto jQuery?Eliminar elemento del objeto jQuery
Respuesta
Si está hablando de eliminar nodos del objeto jQuery, use las funciones filter
o not
. See here for more.
Cómo usar 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');
Cómo usar not
:
var ps = $('p');
//Removes elements matching the specified expression
//from the set of matched elements.
ps = ps.not('.selector');
@ geowa4 - gracias por la respuesta. ¿Sabes si el filtro elimina un nodo del objeto de forma global, o simplemente local para su función? –
Una cosa que me hizo tropezar es que en realidad no eliminará nada de un selector almacenado en la memoria caché a menos que usted reasigne. Entonces necesitas ps = ps.filter (function() {// stuff}); – SimplGy
<ul>
<li class="1" />
<li class="2" />
<li class="3" />
<li class="4" />
<li class="5" />
</ul>
itera sobre la colección Filtrar objeto jQuery. Para cada uno de los elementos: Devuelva true
dentro de filter()
para mantener el elemento actual en la colección de objetos jQuery. Devuelva false
para eliminar el objeto actual de la colección de objetos jQuery.
$("li").filter(function()
{
if (this.className == "1" || this.className == "2") return true;
return false;
});
En este caso; la función anónima ejecutada por filter()
devolverá verdadero para el elemento de la lista que tiene la clase y/o , eliminando a su vez los tres últimos elementos de la lista de la colección de objetos jQuery.
Un ejemplo práctico:
<ul>
<li class="1" />
<li class="2" />
<li class="3" />
<li class="4" />
<li class="5" />
</ul>
Este fragmento se suma una clase ("azul") a la lista desordenada. Luego resalta los primeros dos elementos de la lista. A continuación, adjunta un clic-manejador de los primeros dos list-item:
$(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, eso devolverá falso todo el tiempo. estás haciendo un bucle sobre 'ul's, no sobre los' li's que tienen los nombres de clase. – geowa4
Brain-fart :) Gracias por el aviso. – roosteronacid
Como se ha señalado ya, $.filter()
es una gran opción para filtrar datos. Tenga en cuenta también que the jQuery object can be handled like an array, y como tal, puede usar métodos de matriz como splice()
en él.
var people = $(".people");
people.splice(2,1); // Remove 1 item starting from index 2
@ geowa4: Lee http://www.learningjquery.com/2008/12/peeling-away-the-jquery-wrapper – Sampson
@Jonathan: ¿lo leíste? bc no dice que sea una matriz en absoluto. puede obtener uno, claro, y jQuery puede comportarse como una matriz de alguna manera. pero aún no es una matriz, una distinción importante. de hecho, algunas de las funciones de matriz funcionan en el objeto jQuery, como se señaló en mi primer comentario. – geowa4
@ geowa4: Sí, lo leí. Sé que no es una matriz (técnicamente), así que me disculpo por mi pobre redacción.Lo que quise comunicar fue que puedes tratarlo como una matriz, como mi ejemplo señaló. – Sampson
- 1. ¿Cómo eliminar un elemento del objeto jQuery?
- 2. Cómo eliminar el elemento dom del objeto jquery
- 3. jQuery Eliminar plugin del elemento
- 4. jquery eliminar elemento hijo directo
- 5. jQuery objeto y elemento DOM
- 6. ¿Cómo eliminar elemento de un objeto JavaScript
- 7. ¿Usar el objeto del elemento con el método jQuery?
- 8. jQuery: 'estilo' Configuración de atributos del elemento con objeto
- 9. jQuery Eliminar texto específico de un elemento
- 10. Python: eliminar elemento del montón
- 11. Eliminar último elemento de datos anexados jQuery
- 12. ¿Cómo eliminar un elemento lentamente con jQuery?
- 13. JQuery eliminar elemento DOM después de desvanecer
- 14. Jquery ordenable, eliminar elemento actual arrastrando
- 15. jQuery - Eliminar todo después de un elemento
- 16. cómo eliminar el elemento creado con jquery?
- 17. jQuery: append() objeto, eliminar() con la demora()
- 18. jQuery: Agregar elemento después del enésimo elemento
- 19. vinculación/desvinculación objeto jQuery a un elemento
- 20. Cómo cambiar CSS del elemento usando jQuery
- 21. jQuery hijo del elemento cliquete
- 22. cómo eliminar cada estilo del elemento?
- 23. ¿Cómo eliminar un elemento xml del archivo?
- 24. Eliminando jquery imgareaselect plugin del elemento
- 25. Obtención de un objeto HTMLElement del objeto jQuery
- 26. jQuery x y coordenadas del documento del objeto DOM
- 27. jQuery: eliminar elementos después del actual
- 28. Eliminar manipuladores en la eliminación del objeto
- 29. LinkedList: eliminar un objeto
- 30. jQuery: Eliminar clase si se hace clic en otro elemento
¿Qué tipo de cosas intentas eliminar? – acrosman
@acrosman - Nada en particular. Solo quiero aprender más sobre cómo jQuery hace su magia. Hay una buena documentación en el sitio de jQuery con respecto a la API, pero (aparte de ir a través de la fuente) no vi mucha documentación sobre el funcionamiento interno del objeto jQuery. –