Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么queryselector调用中选择器的顺序很重要?_Javascript - Fatal编程技术网

Javascript 为什么queryselector调用中选择器的顺序很重要?

Javascript 为什么queryselector调用中选择器的顺序很重要?,javascript,Javascript,我想我可能在querySelector函数中发现了一个bug。似乎选择器的放置顺序会影响选择器是否被选中 我尝试使用querySelector选择一个链接,并传入3个不同的选择器,希望它选择这3个选择器中的任何一个,不幸的是,有时即使页面上有明确的匹配,它也不会匹配选择器,除非我在querySelector函数中重新排列选择器的顺序 我要匹配的测试链接: 此函数返回null: document.querySelector("a[href$='?source=fttp']","a[href$='

我想我可能在
querySelector
函数中发现了一个bug。似乎选择器的放置顺序会影响选择器是否被选中

我尝试使用querySelector选择一个链接,并传入3个不同的选择器,希望它选择这3个选择器中的任何一个,不幸的是,有时即使页面上有明确的匹配,它也不会匹配选择器,除非我在querySelector函数中重新排列选择器的顺序

我要匹配的测试链接:

此函数返回
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']")
两个电话都有完全相同的选择器,只是顺序不同

我创建了一个JSFIDLE来演示这个问题:

有人能告诉我这里发生了什么,以及为什么发送到querySelector函数的选择器的顺序很重要吗?

querySelector()
只接受一个参数。
你不能那样做

相反,您需要传递一个带有三个逗号分隔选择器的字符串。

querySelector()
只接受一个参数。
你不能那样做


相反,您需要用三个逗号分隔的选择器传递一个字符串。

或使用instead@kei:那根本没用。或者使用instead@kei:那根本没用。