我的网页上有一张图片如下:
<img id="k4Tbx6luuHmP01dpI4BRZw==" src="/thumbnail/k4Tbx6luuHmP01dpI4BRZw==">
然而,当我尝试
时var is_image_there = $("#k4Tbx6luuHmP01dpI4BRZw==").attr("src");
console.log(is_image_there);
Chrome控制台返回“未定义”。我做错了什么?
答案 0 :(得分:4)
您需要escape the selector correctly:
$('#k4Tbx6luuHmP01dpI4BRZw\\=\\=');
以下是演示:http://jsfiddle.net/mathias/crYWH/
要检查图像是否存在,您可以检查.length
属性:
$('#k4Tbx6luuHmP01dpI4BRZw\\=\\=').length;
如果图片不在页面中,则等于0
。
我已经制作了一个工具,可以帮助您正确地转义任何选择器:mothereff.in/css-escapes屏幕截图:
答案 1 :(得分:1)
是的,如果您escape =
,它似乎有效。
据我所知,id是一个基本的64字符串。
我可以建议您删除填充,即=
。然后在需要时恢复它们。
很简单,base 64 string必须长度为4 * n。如果它不等于它,则用=
填充。
此外,您的网址还包含=
。这是url中的特殊字符。因此,我建议您使用url based base64。
答案 2 :(得分:0)
如果您不使用html5,则不允许在您的ID中使用==。
ID和NAME令牌必须以字母([A-Za-z])开头,可能是 后跟任意数量的字母,数字([0-9]),连字符(“ - ”), 下划线(“_”),冒号(“:”)和句点(“。”)。