Recorrido jQuery - método not()
Ejemplo
Elimina el párrafo con id "selected" de la colección que contiene todos los párrafos:
$("p").not("#selected")
Definición y uso
not() Elimina elementos de la colección de elementos coincidentes.
Gramática 1
.not(selector)
Parámetros | Descripción |
---|---|
selector | Valor de cadena que contiene la expresión de selector utilizada para coincidir con los elementos. |
Gramática 2
.not(element)
Parámetros | Descripción |
---|---|
element | Un o varios elementos DOM que se deben eliminar del conjunto de coincidencias. |
Gramática 3
.not(function(index))
Parámetros | Descripción |
---|---|
function(index) | Función utilizada para detectar cada elemento de la colección. this es el elemento DOM actual. |
Descripción detallada
Si se proporciona un objeto jQuery que representa una colección de elementos DOM, el método .not() construirá un nuevo objeto jQuery a partir de un subconjunto de elementos coincidentes. El selector aplicado detectará cada elemento; los elementos que no coinciden con el selector se incluirán en el resultado.
Pensando en la siguiente página con una lista simple:
<ul> <li>elemento de lista 1</li> <li>elemento de lista 2</li> <li>elemento de lista 3</li> <li>elemento de lista 4</li> <li>elemento de lista 5</li> </ul>
Podemos aplicar este método al conjunto de elementos de lista:
$('li').not(':even').css('background-color', 'red');
El resultado de esta llamada es establecer el fondo de color rojo para los elementos 2 y 4, ya que no coinciden con el selector (recuerda, :even y :odd utilizan índices basados en 0).
Eliminar elementos específicos
La segunda versión del método .not() permite eliminar elementos del conjunto de coincidencias, asumiendo que ya hemos encontrado estos elementos mediante otros medios. Por ejemplo, imaginemos que una lista ya ha aplicado un id a uno de sus elementos:
<ul> <li>elemento de lista 1</li> <li>elemento de lista 2</li> <li id="notli">elemento de lista 3</li> <li>elemento de lista 4</li> <li>elemento de lista 5</li> </ul>
Podemos usar la función nativa de JavaScript getElementById() para leer el tercer elemento de la lista y luego eliminarlo del objeto jQuery:
$('li').not(document.getElementById('notli')).css('background-color', 'red');
Esta sentencia cambia el color de fondo de los elementos 1, 2, 3 y 5. Podemos lograr lo mismo con una expresión jQuery más simple, pero esta técnica es muy útil cuando, por ejemplo, otras bibliotecas proporcionan referencias a nodos DOM puros.
Para jQuery 1.4, el método .not() puede tomar una función como parámetro, al igual que el método .filter(). Los elementos para los que la función devuelve true serán excluidos del conjunto de filtrado; todos los demás elementos se incluirán.