Período jQuery en el nombre de clase almacenado en VAR
-
29-10-2019 - |
Pregunta
Tengo este código:
var imgId = this.id; //file1.jpg
y esto:
$('.img\\' + imgId).remove();
Entonces el problema es que no puedo escapar del '.' Porque está en el var, no antes. ¿Que puedo hacer?
Solución
No almacene el nombre de archivo como parte de la clase/ID en su marcado. En su lugar, use un atributo de datos:
<div class="img" data-filename="file1.jpg" />
Y luego en tu jQuery:
$('.img[data-filename="'+imgId+'"]').remove();
Otros consejos
Probablemente he entendido mal la pregunta, pero ¿funcionaría esto?
$('.img\\' + replace(imgId,'.','\.')).remove();
¿No puedes hacer algo como $("#"+imgId, ".img").remove()
Usar .replace
para reemplazarlo.
var imgId = this.id.replace('.', '/.'); //Or whatever other escaping is there.
Si bien el período es una entidad válida en una identificación HTML, lo que sugiere fuertemente, sigue una convención de nomenclatura diferente, específicamente una en la que los períodos no se usan en los valores de identificación.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow