Период jQuery в имени класса хранится в var - PullRequest
0 голосов
/ 12 сентября 2011

У меня есть этот код:

var imgId = this.id; //file1.jpg

и это:

$('.img\\' + imgId).remove();

Так что проблема в том, что я не могу избежать "." потому что в вар, не раньше. Что я могу сделать?

Ответы [ 5 ]

4 голосов
/ 12 сентября 2011

Не храните имя файла как часть класса / id в вашей разметке. Вместо этого используйте атрибут data:

<div class="img" data-filename="file1.jpg" />

А потом в вашем jQuery:

$('.img[data-filename="'+imgId+'"]').remove();
0 голосов
/ 12 сентября 2011

Хотя точка является действительной сущностью в HTML-идентификаторе, настоятельно рекомендую придерживаться другого соглашения об именовании, в частности, в тех случаях, когда точки не используются в значениях идентификатора.

0 голосов
/ 12 сентября 2011

ты не можешь сделать что-то вроде $("#"+imgId, ".img").remove()

0 голосов
/ 12 сентября 2011

Используйте .replace для его замены.

var imgId = this.id.replace('.', '/.'); //Or whatever other escaping is there.
0 голосов
/ 12 сентября 2011

Я, наверное, неправильно понял вопрос - но сработает ли это?

$('.img\\' + replace(imgId,'.','\.')).remove();
...