$(' #parent_tab [href ="#tab1"')。click();
以上行工作正常,选项卡在其他浏览器中被选中但不是safari。我必须按如下方式关闭href的方括号,以使其在Safari中工作。
$(' #parent_tab [href ="#tab1"]')。click();
为什么当方括号未关闭时,jquery不会抛出错误?
答案 0 :(得分:1)
这看起来像是一个Safari问题。另一个原因是因为结束括号位于jQuery选择器内。 Safari可能只关心jQuery选择器之外的JavaScript代码。它只是一个可以有不同格式的文本,jQuery只是试图解释它。
如果它会引发错误,您也可以尝试以下代码。
$("#parent_tab [href='#tab1'").click();
答案 1 :(得分:1)
CSS规范说可以放弃支架。由于jQuery首先将选择器传递给本机querySelectorAll
以获得性能,并且该方法不会抛出错误(加上它返回正确的元素),因此未检测到缺少的括号。如果您使用了像:animated
这样的特定于jQuery的选择器,那么该字符串将通过jQuery的Sizzle选择器引擎,您将收到错误。
答案 2 :(得分:1)
我只在Safari中遇到了完全相同的错误。我在其他几种浏览器上尝试了该网站,但它们都没有问题。
有趣的是,在Chrome中,当我在“开发工具”窗口中查看源代码时,似乎会自动添加缺少的括号。
Chrome版本:67.0.3396.99(官方内部版本)(64位)