我希望从document
获取以ge-开头的所有元素。示例<ge-survey></ge-survey> <ge-sombody></ge-sombody> <ge-...></ge-...>
。
var elements = document.getElementsByTagName("*"); // <<-- now return all
我也尝试过:
var elements = document.querySelectorAll("^=ge-");
但得到:
geadele.js:3 Uncaught SyntaxError: Failed to execute 'querySelectorAll' on 'Document': '^=ge-' is not a valid selector.
我也试过了:
var els = document.getElementsByTagName("^=ge-"); // return epty HTMLcollection
我的HTML:
...
</head>
<body>
<ge-survey></ge-survey>
<ge-element></ge-element>
</body>
...
答案 0 :(得分:1)
如果您知道要获取的所有var obj = { 0 : "a", 1 : "b", 2 : "c"};
console.log(Object.keys(obj)); // [0, 1, 2]
元素,则可以使用var obj = { 0 : "a", 1 : "b", 2 : "c"};
console.log(Object.values(obj)); // ['a', 'b', 'c']
并连接结果。
ge-
在我看来,这种方法在包含大量元素的文档中比regexp快,但我没有任何基准测试。
如果您不了解所有可能的document.getElementsByTagName('ge-somebody')
元素,可以通过过滤所有元素来获取它:
var ge1Elements = Array.prototype.slice.call(document.getElementsByTagName('ge-1'));
var ge2Elements = Array.prototype.slice.call(document.getElementsByTagName('ge-2'));
...
var geElements = [].concat(ge1Elements, ge2Elements, ge3Elements);
答案 1 :(得分:0)
您可以使用document.querySelector
并使用&#39;以&#39;开头键入css选择器:
Can I use a regular expression in querySelectorAll?