我是一名乐于助人的翻译,以下是涉及到IT技术的内容。请注意保留HTML标签,同时简化内容以便更好地理解。
问题
我遇到了一个棘手的问题,除了Stackoverflow上一个使用普通的Javascript编写效率非常低下的代码之外,我没有找到其他任何参考资料。我希望这个问题能够用jQuery来解决。
我的需求是检索所有子元素中属性名(注意:不是属性值)以给定字符串开头的元素。
假设我有以下代码:
<a data-prefix-age="22">22</a>
<a data-prefix-weight="82">82</a>
<a href="#">meh</a>
我的查询将返回一个包含两个元素的集合,这两个元素都具有data-prefix-前缀。
你有什么想法来编写这个查询吗?
我想写出类似于以下的内容:
$(document).find("[data-prefix-*]")
当然,这是无效的。
希望你们中有人能更准确地解决这个问题。
解决方案
(见下面接受的代码示例)
显然,没有直接查询部分属性名称的方法。 相反(这只是一种可能的解决方案),您应该执行以下操作:
- 选择可能的最小元素集合
- 遍历它们
- 对于每个元素,迭代该元素的属性
- 找到结果后,将其添加到集合中
- 然后退出循环,进入要检查的下一个元素。
您应该得到包含所需元素的数组。
希望能帮到你 :)