2010-11-22 7 views
4

idに '/'を含めるDOM要素があります。それはだが、 -'/' + jqueryを含む 'id'の検索

jQuery('#activities/_terp_count') //returns null 
+5

ID属性にはスラッシュを使用できません。 jQueryはそのような要素を見つけるのに苦労しています。つまり、まだそのIDを持つ要素を取得する方法があるかもしれません。また、「そのIDを持つすべての要素」は、そのような要素を1つだけ持つようにしてください。 – BoltClock

+3

'id'は文字([A-Za-z])で始まり、任意の数の文字、数字([0-9])、ハイフン(" - ")、アンダースコア(" _ ")、コロン(": ")、ピリオド("。 ")のいずれかです。" '/'は無効な文字です。 – kennytm

+1

参照してください:http://stackoverflow.com/questions/70579/what-is-a-valid-value-for-id-attributes-in-html – Kevin

答えて

4

jQuery('[id=activities/_terp_count]')が実際に(http://jsfiddle.net/jXsvA/例)、それを見つける必要があり、こと

jQuery('[id=activities/_terp_count]') //returns null 

注: 私は例のID を持つすべての要素を必要とするように私には、以下の蟻酸を使用したいですIDによる直接検索よりも遅くなります。タグが常に<div>の場合は、jQuery('div[id*=activities/_terp_count]')などのようにセレクタを何らかの方法で制限できると高速になります。あなたが/記号をエスケープする場合

+0

あなたのソリューションは私にとって有益でした'id'の周りに引用符をつけています:' jQuery( '[id = "activities/_terp_count"]') '。それがなければ、私は '構文エラー、認識できない式... 'を持っています。 –

4

あなたは、通常のIDセレクタを使用することができます - jQueryのrequires that for special characters(ただし、/は、私の知る限り、jQueryのか、CSSで空間の意味を持ちません)

$('#activities\\/_terp_count') 
7

上記の解決策は私にとってはうまくいくが、idで要素を取得するネイティブメソッドに利点があることは注目に値する。すなわち、document.getElementById( 'strin/g')はjQuery( "strin/g" ")は失敗します(なぜなら、jQueryは特別な処理をせずに"/"をつぶれたトークンパーサーを使用しているからです)。あなたは常にあなたが持つ要素のためのページを検索しようとしている場合、実際のID(たとえば、に起こって正確に何を制御することができない場合、実際には

jQuery(document.getElementById('activities/_terp_count')); 

:jQueryのは、その要素のバージョンを包ん取得するにはそれは危険である可能性があり、b)jQuery(document.getElementById(window.location.has.replace( "#"、 '') )))); jQuery( "#" + window.location.has.replace( "#"、 ''))よりもはるかに確実に動作します。それは容易に壊れないからです。

例:あなたは、ユーザーが単に特定のURLパラメータやハッシュに入力することで、あなたのコードを破ることができるようにしたくない場合は

jQuery(document.getElementById("_=_")) //<--- null, or the actual element, if you have one which said crazy, non-compliant id 

jQuery("#_=_") //<--Uncaught Error: Syntax error, unrecognized expression: #_=_ 

、できればそのユースケースを回避し、あなたの場合できません、ネイティブのID要素を使用します。

+1

これは最も簡単な解決策であり、最も賢明な解決策です。 なぜ邪魔になるか[エスケープ](http://learn.jquery。CSSの表記法で使用されている要素を使用している要素ごとに要素ごとに要素を選択する方法は、常にエラーになりがちです予期せぬ状況で)、そのネイティブなjavascriptメソッドにそのリサイズ可能性を利用することができます。 – thebugfinder

関連する問題