document.querySelectorAll 在 IE、Edge 和 Safari 中的兼容性

uni*_*oot 0 javascript safari internet-explorer selectors-api microsoft-edge

参考答案:https : //stackoverflow.com/a/38399344/5132413

请参考我的问题上面链接的答案仅适用于 Firefox、Chrome 和 Opera。

我做了一些研究,发现它(不区分大小写标志)不兼容。我需要 IE、Edge 和 Safari 中的等效项。

var divs = document.querySelectorAll('div[class^="foo" i]');
Run Code Online (Sandbox Code Playgroud)

Bho*_*yar 7

由于 css level 4 仍在草稿中,区分大小写的选择器与大多数浏览器不兼容。您可以像这样使用过滤器方法:

var divs = [].slice.call(document.querySelectorAll('div')).filter(function(el){
   return el.className.match(/^foo/i);
});
Run Code Online (Sandbox Code Playgroud)

更新:需要声明您现在可以使用 css4 选择器。

document.querySelectorAll('div[class^="foo" i]');
Run Code Online (Sandbox Code Playgroud)

请参阅此链接以了解浏览器兼容性。