Obtener elemento con punto en nombre de clase con JQuery

publicado por: Anonymous

Resulta que siguiendo la documentación de la librería fancybox me encuentro que para definir el comportamiento de sus elementos mediante clases se debe seguir una sintaxis como la siguiente:

<a href="http://www.dominio-ejemplo.mx/pagina" class="fancybox.iframe">
    <!-- Código HTML -->
</a>

Deseo añadirles «x» comportamientos por medio de jQuery a ese tipo de elementos, pero me encuentro que aún escapando el caracter de «.» (punto) con la barra invertida () no toma el elemento.

Dejo el siguiente snippet:

_x000D_

_x000D_

$(function(){_x000D_
  $('button').on('click', function(){_x000D_
    /* No funciona */_x000D_
    $('.fancybox.image').remove();_x000D_
  });_x000D_
});

_x000D_

.fancybox.iframe {_x000D_
  color: white;_x000D_
  background-color: red;_x000D_
}_x000D_
_x000D_
.fancybox.image {_x000D_
  color: white;_x000D_
  background-color: green;_x000D_
}

_x000D_

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>_x000D_
_x000D_
<ul>_x000D_
  <li>_x000D_
    <a href="http://www.dominio-ejemplo.mx/pagina" class="fancybox.iframe">Estilo iframe</a>_x000D_
  </li>_x000D_
  <li>_x000D_
    <a href="http://www.dominio-ejemplo.mx/pagina" class="fancybox.image">Estilo imagen</a>_x000D_
  </li>_x000D_
</ul>_x000D_
_x000D_
<button>Borrar: fancybox.iframe</button>

_x000D_

_x000D_

_x000D_

solución

El problema está aquí (en el slash):

$('.fancybox.image').remove();

Cámbialo por .fancybox\.image con doble slash.

El resto del código está bien, lo que pasa es que la cadena '.' en JavaScript se convierte en solo '.' porque es el caracter de escape, y lo que quieres es que el selector reciba ..

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *