2017-02-01 10 views
0
$('a[href=#InterventionEditDocs]').trigger('click'); 

を更新した後に、もはや作業[のhref =#の例を]セレクタ属性ありませんが、いくつかのアップデートか何かの後には、コンソールでエラーがスローされます。は完全に数日戻ってこのコード行は、私のプロジェクトのために働いていたのjQuery

私は、値の前後に引用符を追加することによって、それを修正:

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

、それが今取り組んでいます。しかし、それはなぜ前に働いていたのですか?そして、なぜそれが再び働くための価値を引用しなければならないのですか?

+0

[! "#$%& '()* +、。/ :; <=>?@ [\]^{|}〜)などのメタ文字のいずれかをたとえば、id = "foo.bar"の要素は、セレクタ$( "#foo \\。bar")を使用できます.W3C CSS仕様には、次の2つのバックスラッシュが含まれています。有効なCSSセレクタに関する完全なルールのセット。また、Mathias BynensによるCSSのエスケープシーケンス(識別子のためのブログエントリ)もあります。]](https://api.jquery.com/category/selectors/) –

+0

'$( 'a –

+0

あなたの質問のタイトルには '[attribute $ = value]'と書かれていますが、質問自体には '[attribute = value]'しか使われません。 –

答えて

1

しかし、なぜそれがこれは1.12.0および2.2.0で修正されたjQueryを使ってバグだった

前に働いていました。

a[href=#InterventionEditDocs]は無効なCSSセレクタです。#は特殊文字(IDセレクタを表す)であるため、identには使用できません。最初はjQueryで動作するはずはありませんでしたが、document.querySelectorAll()を置くとSYNTAX_ERRになります。

なぜそれを再び使用するには値を引用する必要がありますか?

が有効です。これは、属性値が引用符で囲まれているため、もはやidentではなく文字列であるためです。

関連する問題