如何根据路径/url选择图像?
我想根据他们的url选择图片,但由于某种原因,它不是在玩球:
最终我追求的是:
var imgs = $("img[@src='https://stackoverflow.com/questions/3167806/how-do-i-select-an-image-based-on-its-path-url/images/object.png']:not(:hidden)");
但即使有一些简单的东西:
$("img[@src='https://stackoverflow.com/questions/3167806/how-do-i-select-an-image-based-on-its-path-url/images/object.png']");
抛出此错误:“TypeError:Object不支持此属性或方法”。
如果我从查询中省略了@:
$("img[src='https://stackoverflow.com/questions/3167806/how-do-i-select-an-image-based-on-its-path-url/images/object.png']");
我没有退回任何物品。 我在运行时直接从生成的html复制并粘贴了路径,但它仍然拒绝返回任何项目。 如果我用id选择器替换src选择器,它将返回项目。
这是运行时生成的图像标记:
我正在运行jQuery 1.4.2并且我检查了所有文档,并且所有文档似乎都正确编码。 我假设这不是一个错误,而是我的错误解释。 任何人都可以对此有所了解吗?
干杯
不要使用@
并确保也包含完整查询。 如果有的话。
$("img[src='/images/marketing/logo.png?1277792289']")[0]
你也可以进行子串匹配
$("img[src*='logo']")[0]
并且:not
选择器在错误的地方。 它不应该在属性括号中。
$("img[src*='logo']:not(:visible)")[0]
这曾经是jQuery中的一个错误,显然它仍然存在。
查看以下门票:
- 无法使用action属性选择表单
- 表单和选择器属性filter的attr“action”
- 属性“src”的选择器与1.2.6中的工作方式不同
- IE7通过添加“http:// …”来“修复”href atrribute的值
基本上,如果你使用attributeEndsWith($)或attributeContains(*)选择器,你所拥有的将会有效,因为jQuery没有将你的字符串与你放入图像src属性的内容进行比较,而是针对完整的url路径(即http: // ….. / images/object.png)