2014-02-06 43 views
0

我想我可能在querySelector函數中發現了一個bug。似乎選擇器的放置順序影響選擇器是否被選中。爲什麼查詢選擇器調用中選擇器的順序很重要?

我試圖選擇一個使用querySelector的鏈接,並且正在傳遞3個不同的選擇器,並且希望它選擇這3箇中的任何一個,不幸的是,有時它不會匹配選擇器,即使存在除非我在querySelector函數中重新排列選擇器的順序,否則頁面上的確切匹配。

我想匹配

測試環節: <a href="https://www.facebook.com/hashtag/coyotes?source=ftp"><span>#Coyotes</span> 60 recent posts</a>

該函數返回null

document.querySelector("a[href$='?source=fttp']","a[href$='?source=ftp']","a[href^='/topic/']") 

此函數調用鏈接

document.querySelector("a[href$='?source=ftp']","a[href^='/topic/']","a[href$='?source=fttp']") 

兩個調用具有完全相同的選擇匹配,僅以不同的順序

我創建演示該問題的jsfiddle: http://jsfiddle.net/eB8nv/5/

誰能告訴我這到底是怎麼回事,爲什麼選擇的順序發送到querySelector功能的問題?

回答

4

querySelector()只需要一個參數。
你不能那樣做。

相反,您需要傳遞一個帶有三個逗號分隔選擇器的字符串。

+0

或者使用['querySelectorAll'](https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelectorAll)代替 – kei

+2

@kei:那根本沒有幫助。 – SLaks

+0

Doh!謝謝Slaks! – user280109