0

參考答案:https://stackoverflow.com/a/38399344/5132413兼容性和Safari

請參考my question,答案只在火狐,Chrome和Opera鏈接above作品。

我做了一些研究,發現它(不區分大小寫的標誌)不兼容。我需要在IE,Edge和Safari中使用相同的功能。

var divs = document.querySelectorAll('div[class^="foo" i]'); 
+0

這是CSS4,你不應該使用它,因爲沒有太多的支持。 – TyrionGraphiste

+0

我使用它沒有問題,但我現在不是什麼「我」是:因此請嘗試document.querySelectorAll('div [class^=「foo」]'); – Wolfgang

+0

這是不區分大小寫限定符。檢查[這是](https://stackoverflow.com/questions/38399089/ignoring-case-sensitiveness-in-queryselectorall/)[answer](https://stackoverflow.com/a/38399344/5132413)。 –

回答

1

由於css level 4仍在草稿中,所以區分大小寫的選擇器與大多數瀏覽器不兼容。你可以使用這樣的過濾方法:

var divs = [].slice.call(document.querySelectorAll('div')).filter(function(el){ 
    return el.className.match(/^foo/i); 
}); 
+0

我收到一個錯誤 - '.filter不是函數'。使用Chrome 52 x64。 –

+0

https://postimg.org/image/ygyziart3/:/ –

+0

document.querySelectorAll返回一個[NodeList](https://developer.mozilla.org/en-US/docs/Web/API/NodeList),而不是'array'。我想這可能是問題。我編輯了答案。有用。 –