【发布时间】:2019-05-01 07:34:41
【问题描述】:
我知道[name^="value"]selector,但是是否有类似的选择器(或技术)可以查询以给定值开头的所有属性?
我正在寻找类似$("[*^='http://www.something.com']")(不存在)的东西。
它将匹配包含至少一个属性值以http://www.something.com 开头的所有元素。
说:
<img src="http://www.something.com/image.jpg" />
<a href="http://www.something.com">Something</a>
<link rel="stylesheet" href="http://www.something.com/css/style.css" type="text/css">
属性名称可以是任何名称,而不仅仅是src 和href,甚至是非标准属性。
有已知的方法吗?
【问题讨论】:
-
这需要整个 DOM 被迭代,我认为每个元素的属性集合都被迭代。如果您愿意,我可以用 JavaScript 编写它,然后您可以将它作为选择器扩展添加到 jQuery?不过,它不会表现出色。
-
为什么你需要做这样的事情?当然有更好的解决方案。
-
这样的东西永远不应该存在,它没有没有用例。您有 两个 整个属性可供选择,并且您只对三种类型的标签感兴趣,因此不要通过检查每个元素的每个属性来粗暴化您的 DOM,只需针对属性编写三个查询你真的关心并完成它:
img[src$=http://whatever],link[href$=http://whatever],a[href$=http://whatever]。你需要想出一个更好的现实世界的理由来检查每个元素的每个属性,没有理由永远这样做。 -
danronmoon,已修复。零和粉碎,谢谢!其他人,我有我的理由和用例,
data-*等属性有无限可能,甚至是不合格的属性。性能不是问题,我喜欢粗暴化 DOM :D。
标签: javascript jquery