我有一堆自定义元素,以“食品-cta-”开头。我正在寻找一种在JavaScript/jQuery中能够选择这些元素的方法。这类似于我如何使用$('*[class^="food-cta-"]')来选择以food-cta-开头的所有类。是否有可能搜索以“食品-cta-”开头的元素?
请注意,我将注入此搜索到页面,因此我将无法访问角。
自定义元素示例:
<food-cta-download><food-cta-external><food-cta-internal>编辑:我正在查看的代码如下所示:
<food-cta-download type="primary" description="Download Recipe">
    <img src="">
    <h2></h2>
    <p></p>
</food-cta-download>该应用程序使用AngularJS创建自定义元素,我认为这被称为指令。
发布于 2016-05-31 18:12:30
试试这个..。
let customElements = $('*')
  .filter((index,element) => /FOOD-CTI-/.test(element.tagName));注意,.tagName应该返回大写的结果。这将为您提供所需元素的jQuery对象。不过,它将遍历整个DOM。会很慢的。
它使用https://api.jquery.com/all-selector/。
注意:所有的,或通用的,选择器是非常慢的,除非它自己使用。
您也可以通过指定类似于$("body *")的内容来减少整个dom的遍历量。不确定在哪里放置了自定义元素,以及它们在哪里被允许。
顺便说一下,我不会使用自定义元素,微格式是一个更好的主意,至少现在是这样,它们也得到了更好的支持,并且它们不太可能改变。
https://stackoverflow.com/questions/37552066
复制相似问题