如何根据路径/网址选择图像?

时间:2010-07-02 17:22:04

标签: jquery jquery-selectors

我想根据他们的网址选择图片,但出于某种原因,它不是在玩球:

最终我追求的是:

var imgs = $("img[@src='images/object.png']:not(:hidden)");

但即使是简单的事情:

$("img[@src='images/object.png']");

抛出此错误:“TypeError:Object不支持此属性或方法”。

如果我从查询中省略@:

$("img[src='images/object.png']");

我没有退回任何物品。我在运行时直接从生成的html复制并粘贴了路径,但它仍然拒绝返回任何项目。如果我用一个id选择器替换src选择器,它将返回项目。

这是在运行时生成的图像标记:

<img id="ctl00_ContentPlaceHolder1_object_1" src="images/object.png" style="height:16px;width:16px;border-width:0px;visibility:visible;display:inline;margin-right:3px;" />

我正在运行jQuery 1.4.2并且我检查了所有文档,并且所有文档似乎都正确编码。我假设这不是一个错误,而是我的错误解释。任何人都可以对此有所了解吗?

干杯

2 个答案:

答案 0 :(得分:9)

请勿使用@,并确保也包含完整查询。如果有的话。

$("img[src='/images/marketing/logo.png?1277792289']")[0]

您也可以进行子串匹配

$("img[src*='logo']")[0]

:not选择器位于错误的位置。它不应该在属性括号中。

$("img[src*='logo']:not(:visible)")[0]

答案 1 :(得分:1)

这曾经是jQuery中的一个错误,显然它仍然存在。

查看以下门票:

基本上,如果你使用了attributeEndsWith($)或attributeContains(*)选择器,你所拥有的东西将起作用,因为jQuery不会将你的字符串与你放入图像src属性的内容进行比较,而是针对完整的url路径(即,http:// ..... / images/object.png)