我想根据他们的网址选择图片,但出于某种原因,它不是在玩球:
最终我追求的是:
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并且我检查了所有文档,并且所有文档似乎都正确编码。我假设这不是一个错误,而是我的错误解释。任何人都可以对此有所了解吗?
干杯
答案 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)