类名中的jQuery句点存储在var中

Posted

技术标签:

【中文标题】类名中的jQuery句点存储在var中【英文标题】:jQuery period in class name stored in var 【发布时间】:2011-11-15 11:41:03 【问题描述】:

我有这个代码:

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

还有这个:

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

所以问题是,我无法逃脱“。”因为它在var中,而不是之前。我能做什么?

【问题讨论】:

你的班级是.imgfile1.jpg? 您有一个包含文件名的class?为什么? src 已经包含文件名... 此外,选择器'.img\file1.jpg'将被解释为'img\file1'类和'jpg'类,即'img\file1 jpg'类。 “。” (dot) 是一个类选择器,ans 应该在 ids 或 classes 中转义(如“#”和其他“选择器”字符 【参考方案1】:

我可能误解了这个问题 - 但是,这行得通吗?

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

【讨论】:

【参考方案2】:

你不能做类似$("#"+imgId, ".img").remove()的事情

【讨论】:

【参考方案3】:

使用.replace 替换它。

var imgId = this.id.replace('.', '/.'); //Or whatever other escaping is there.

【讨论】:

【参考方案4】:

不要将文件名作为类/ID 的一部分存储在您的标记中。相反,使用 data- 属性:

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

然后在你的 jQuery 中:

$('.img[data-filename="'+imgId+'"]').remove();

【讨论】:

src 已包含文件名。将其存储在其他任何地方充其量是多余的。 @Tomalak - 假设您正在使用 img 元素,是的。但这从未在帖子中指定。可以很容易地使用输入/div/等。与图像相关(但不包含图像本身)。 @Justin:嗯,对。可能。在这种情况下,我仍然会做类似$(".img[src$='"+filename+"']").closest("div.container").remove() 的事情。【参考方案5】:

虽然句点是 html Id 中的有效实体,但我强烈建议您遵循不同的命名约定,特别是在 Id 值中不使用句点的命名约定。

【讨论】:

以上是关于类名中的jQuery句点存储在var中的主要内容,如果未能解决你的问题,请参考以下文章

拆分由句点 (.) 分隔的文件名

从字符串中删除非数字字符(不包括句点和逗号)(即删除除数字、逗号和句点之外的所有字符)

JQuery 从存储在变量中的对象中删除和添加类

在 Heroku 上使用 Boto 时,无法连接到名称中带有句点的 S3 存储桶

从jQuery中的多个相同的类名中获取值CSS

获取孩子Jquery的类名