我想我可能在querySelector
函数中发现了一个错误。似乎放置选择器的顺序会影响选择器是否被选中。
我正在尝试使用querySelector选择一个链接,并且我传递了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函数的选择器的顺序很重要?
答案 0 :(得分:4)
querySelector()
只接受一个参数
你不能这样做。
相反,您需要传递一个包含三个以逗号分隔的选择器的字符串。