У меня есть этот код:
var imgId = this.id; //file1.jpg
и это:
$('.img\\' + imgId).remove();
Так что проблема в том, что я не могу избежать "." потому что в вар, не раньше. Что я могу сделать?
Не храните имя файла как часть класса / id в вашей разметке. Вместо этого используйте атрибут data:
<div class="img" data-filename="file1.jpg" />
А потом в вашем jQuery:
$('.img[data-filename="'+imgId+'"]').remove();
Хотя точка является действительной сущностью в HTML-идентификаторе, настоятельно рекомендую придерживаться другого соглашения об именовании, в частности, в тех случаях, когда точки не используются в значениях идентификатора.
ты не можешь сделать что-то вроде $("#"+imgId, ".img").remove()
$("#"+imgId, ".img").remove()
Используйте .replace для его замены.
.replace
var imgId = this.id.replace('.', '/.'); //Or whatever other escaping is there.
Я, наверное, неправильно понял вопрос - но сработает ли это?
$('.img\\' + replace(imgId,'.','\.')).remove();