我的网页上有一张图片,如下所示:
<img id="k4Tbx6luuHmP01dpI4BRZw==" src="/thumbnail/k4Tbx6luuHmP01dpI4BRZw==">
然而,当我尝试
var is_image_there = $("#k4Tbx6luuHmP01dpI4BRZw==").attr("src");
console.log(is_image_there);
Chrome控制台返回undefined我做错了什么?
发布于 2012-02-16 19:00:43
你需要escape the selector correctly
$('#k4Tbx6luuHmP01dpI4BRZw\\=\\=');
这是一个演示:http://jsfiddle.net/mathias/crYWH/
要检查图像是否存在,可以检查.length
属性:
$('#k4Tbx6luuHmP01dpI4BRZw\\=\\=').length;
如果图像不在页面中,则等于0
。
我已经制作了一个工具,可以帮助你正确地转义任何选择器:mothereff.in/css-escapes截图:
发布于 2012-02-16 19:06:00
是啊,如果你escape =
的话似乎还能用。据我所知,id是一个64位的字符串。我可以建议您删除填充,即=
。然后在需要的时候恢复它们。
这很简单,base 64字符串的长度必须是4*n。如果它不等于它,则用=
填充。
此外,您的url还包含=
。这是url中的特殊字符。因此,我建议您使用url based base64。
发布于 2012-02-16 18:59:00
只要你不使用html5,你的id中就不允许有==。
ID和名称标记必须以字母(A-Za-z)开头,后面可以是任意数量的字母、数字(0-9)、连字符("-")、下划线("_")、冒号(":")和句点(“.”)。
https://stackoverflow.com/questions/9310010
复制相似问题