我创建了一个带有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")
它选择一个未定义的对象。我该如何访问它?
答案 0 :(得分:3)
需要使用.
转义ID中的\.
,否则会将.
之后的部分视为类选择器
因此,您的选择器正在寻找ID为photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e
且类jpg
再次\
是JavaScript中的字符串转义字符,因此在字符串中,您需要使用\
转义\\
以获取字符串\.
$("#photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e\\.jpg")
演示:Fiddle
答案 1 :(得分:3)
转义.
运算符
$("#photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e\\.jpg")
.
是jquery中的类选择器..所以你必须使用\
来转义它。
使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\。
为什么\\
..要将字符串作为\.
,我们需要使用\
来转义它.jquery doc本身有一个链接,用于解释规则集,非常有帮助,建议你仔细阅读...
答案 2 :(得分: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];
答案 3 :(得分:0)
对于特殊(。,#,+, - ,*,/等等)我们使用字符“\”所以使用
像这样 $("#photo_e8c34d96-dea7-4e60-9dcf-e9b7efaf856e\\.jpg")