name javascript jquery jquery-selectors

javascript - jquery name selector



¿Cómo verifica si un selector coincide con algo en jQuery? (11)

Esta pregunta ya tiene una respuesta aquí:

En Mootools, solo correría if ($(''target'')) { ... } . ¿Funciona de la misma forma if ($(''#target'')) { ... } en jQuery?


Alternativamente:

if( jQuery(''#elem'').get(0) ) {}


Como los otros comentaristas están sugiriendo que la forma más eficiente de hacerlo parece ser:

if ($(selector).length ) { // Do something }

Si es absolutamente necesario que tenga una función existir (), que será más lenta, puede hacer:

jQuery.fn.exists = function(){return this.length>0;}

Luego en tu código puedes usar

if ($(selector).exists()) { // Do something }

Como se responde aquí


Creo que la mayoría de las personas que respondieron aquí no entendieron bien la pregunta, o de lo contrario podría estar equivocado.

La pregunta es "cómo verificar si existe un selector en jQuery".

La mayoría de la gente ha tomado esto para "cómo verificar si un elemento existe en el DOM usando jQuery". Difícilmente intercambiables.

jQuery le permite crear selectores personalizados, pero vea aquí qué sucede cuando intenta usar en e antes de inicializarlo;

$('':YEAH''); "Syntax error, unrecognized expression: YEAH"

Después de encontrarme con esto, me di cuenta de que era simplemente una cuestión de comprobación

if ($.expr['':''][''YEAH'']) { // Query for your :YEAH selector with ease of mind. }

Aclamaciones.


Otra forma más:

$(''#elem'').each(function(){ // do stuff });


Para mí .exists no funciona, así que uso el índice:

if ($("#elem").index() ! = -1) {}


Prefiero el

if (jQuery("#anyElement").is("*")){...}

Que básicamente comprueba si estos elementos son un tipo de "*" (cualquier elemento). Solo una sintaxis más clara y "es" tiene más sentido dentro de un "si"


Primero crea una función:

$.fn.is_exists = function(){ return document.getElementById(selector) }

entonces

if($(selector).is_exists()){ ... }


no, jquery siempre devuelve un objeto jquery independientemente de si un selector coincidió o no. Necesitas usar .length

if ( $(''#someDiv'').length ){ }


si usaste

jQuery.fn.exists = function(){return ($(this).length > 0);} if ($(selector).exists()) { }

Usted implicaría que el encadenamiento era posible cuando no lo es.

Esto seria mejor

jQuery.exists = function(selector) {return ($(selector).length > 0);} if ($.exists(selector)) { }


if ($(''#elem'')[0]) { // do stuff }


jQuery.fn.exists = function(selector, callback) { var $this = $(this); $this.each(function() { callback.call(this, ($(this).find(selector).length > 0)); }); };