尝试检查图像是否在带有jquery的页面上

时间:2012-02-16 10:53:52

标签: javascript jquery

我的网页上有一张图片如下:

<img id="k4Tbx6luuHmP01dpI4BRZw==" src="/thumbnail/k4Tbx6luuHmP01dpI4BRZw==">

然而,当我尝试

var is_image_there = $("#k4Tbx6luuHmP01dpI4BRZw==").attr("src");
console.log(is_image_there);

Chrome控制台返回“未定义”。我做错了什么?

3 个答案:

答案 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]),连字符(“ - ”),   下划线(“_”),冒号(“:”)和句点(“。”)。