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