更新jQuery后,属性选择器a [href = #example]不再工作

时间:2017-02-01 06:27:20

标签: jquery html jquery-selectors

$('a[href=#InterventionEditDocs]').trigger('click');

这行代码几天后完美地适用于我的项目,但经过一些更新后,它会在控制台中抛出错误。

我通过在值周围添加引号来修复它:

$('a[href="#InterventionEditDocs"]').trigger('click');

现在正在运作。但为什么之前它正在工作,为什么我必须引用它的价值再次工作?

1 个答案:

答案 0 :(得分:2)

  

但为什么它在

之前有效

这是jQuery的一个错误,已在1.12.0和2.2.0中修复。

a[href=#InterventionEditDocs]是一个无效的CSS选择器,因为#是一个特殊字符(代表一个ID选择器),因此不能出现在ident中。它本来就不应该在jQuery中工作,并且如果通过document.querySelectorAll()会产生SYNTAX_ERR。

  

为什么我必须引用它的值才能再次使用?

a[href="#InterventionEditDocs"]有效,因为现在引用属性值,因此不再是ident而是字符串。