IDのあるdivがあります
<div id="updates-pane-user.followed_on">
このjqueryセレクターは機能します
$("[id^='updates-pane']")
しかし、これはしません
$("#updates-pane-user.followed_on")
何が悪いのかわかりません。ID名にピリオドを含めることができますか?明らかな何かが欠けていますか?
IDのあるdivがあります
<div id="updates-pane-user.followed_on">
このjqueryセレクターは機能します
$("[id^='updates-pane']")
しかし、これはしません
$("#updates-pane-user.followed_on")
何が悪いのかわかりません。ID名にピリオドを含めることができますか?明らかな何かが欠けていますか?
後者のセレクターで.
は、クラスを示すために使用されます。そのため、クラスを探して.followed_on
いますが、明らかに見つからないため、一致するものはありません。
これを修正するには、ダブルバックスラッシュでドットをエスケープする必要があると思います。
$("#updates-pane-user\\.followed_on")
jQueryのドキュメントによると:
メタ文字(! "#$%&'()* +、。/ :; <=>?@ [] ^` {|}〜など)を名前のリテラル部分として使用するには、 2つの円記号でエスケープする必要があります:\\。たとえば、id = "foo.bar"の要素は、セレクター$( "#foo \\。bar")を使用できます。
一般に、IDにピリオドやその他の特殊文字を使用しないようにして、混乱を避けてください。「許可」は「グッドプラクティス」と同じではありません。
id
jQuery構文でクラスセレクターを表す属性のドットのため。このセレクターは、ノードを次のように選択するのと同じです。
<div id="updates-pane-user" class="followed_on">
はい、HTML5ではidにピリオドを使用できますが、jQueryはw3組織によって構築されていません。これは、最も一般的なケース向けに最適化されたユーティリティライブラリです。
IDにピリオドがある場合、またはjQueryがそれを単なるID以上のものとして解析する他の文字がある場合は、標準関数を使用することをお勧めします。
$(document.getElementById(yourId))
これは、IDが変数からのものである場合に推奨されるソリューションです。
$("#updates-pane-user\\.followed_on")
-これはJqueryのドキュメントに従って機能するはずです
// Does not work
$("#some:id")
// Works!
$("#some\\:id")
// Does not work
$("#some.id")
// Works!
$("#some\\.id")
.
セレクターは次の名前のクラスがあると見なすため
$("#updates-pane-user.followed_on")
updates-pane-user
意味:クラス名を持つid=のすべての要素を検索するfollowed_on
これを使用してドットをエスケープします。
$("#updates-pane-user\\.followed_on")
確かに、JQueryがパターンを認識するための問題を作成する期間。
jQueryには3つのタイプのセレクターがあります。
"."
セレクターとは、クラス名で要素を選択することを意味します。"#"
セレクターとは、IDで要素を選択することを意味します。div
で要素を選択する要素セレクターinput
jQuery engine
そして、IDの命名規則と混同しています。
id="updates-pane-user"
とが適用されたdivがあると仮定しclass="followed_on"
ます。このような場合jQuery
は、を使用してシーケンスをエスケープすることをお勧めし//
ます。以下は、要素を選択するためのシンテックスです。
$("#updates-pane-user\\.followed_on");
この間違ったフィドルをチェックして、次を使用して修正してみてください:http //
: //jsfiddle.net/ukJ8Z/
乾杯!!
はいJimboの答えは正しいですが、エスケープ文字を使用してそれを機能させることができます\\
$("#updates-pane-user\\.followed_on")
2つの円記号でエスケープします。
このリンクを確認してくださいHow do I select an element by an ID that has characters used in CSS notation?
次のように、id属性セレクターを使用することもできます。
$('[id="updates-pane-user.followed_on"]')
jQueryは属性をjQueryクラスセレクターではなく文字列として扱うためです。