1

我用 id="photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e.jpg" 创建了一个跨度,例如:

<span id="photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e.jpg">Some Text</span>

现在,当我过去使用 jQuery 访问它时,它并没有访问它:

$("#photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e.jpg")

它选择一个未定义的对象。我怎样才能访问它?

4

4 回答 4

3

需要.使用 id 在 id中转义,\.否则它会将之后的部分.视为类选择器

所以你的选择器正在寻找一个带有 idphoto_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e和 class的元素jpg

同样\是 JavaScript 中的字符串转义字符,因此在字符串中您需要使用转义\\\获取字符串\.

$("#photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e\\.jpg")

演示:小提琴

于 2013-09-02T06:22:35.927 回答
3

逃避.运营商

 $("#photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e\\.jpg")

.是 jquery 中的一个类选择器。所以你必须用 . 来逃避它\

要使用任何元字符(例如 !"#$%&'()*+,./:;<=>?@[]^`{|}~ )作为名称的文字部分,它必须用两个反斜杠转义:\。

至于为什么\\.. 获取字符串,因为\.我们需要使用 .jquery 文档本身对其进行转义 \。jquery 文档本身发布了一个链接,解释了一组非常有帮助的规则,并建议您通过它...

jQuery文档

于 2013-09-02T06:23:09.300 回答
1

不要使用 . 答案是使用@\\ 如上所述

$("#photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e\\.jpg");

根据你的另一个改变问题。到 \ 当使用 id 你可以试试这个

var tempid = "#photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e.jpg".split(".");
var id = tempid[0] + "\\" + tempid[1];
于 2013-09-02T06:23:40.707 回答
0

对于特殊(.,#,+,-,*,/ 等等)我们使用字符“\”所以使用

$("#photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e\\.jpg")像这样

于 2013-09-02T06:23:50.193 回答