2012-03-17 9 views
4

私はウェブの分野で全然ノブなので、最近jQueryを学んできました。私の関心事は、私のブラウザがHTML5をサポートしていない場合、私のHTMLからjQueryを使って 'data'属性にアクセスすることができますか?HTML5以外のブラウザからのデータタグへのアクセス

+1

私の知る限り、どのブラウザでもhtml 5のデータ属性を使用することができますが、Internet Explorerでも問題が発生しているはずです。IEはレンダリングや使用方法がわからないすべての属性を無視するためです。この投稿を参照してくださいhttp://stackoverflow.com/questions/2412947/do-html5-custom-data-attributes-work-in-ie-6 – jacqijvv

答えて

8

はい、あなたはデータの属性を使用することができますし、ブラウザがHTML5をサポートしていない場合でも、jQueryを使ってそれにアクセスすることができるようになります。

あなたが持っている は
var value = $('#foo').data('value'); 

<div id="foo" data-value="bar">Baz</div> 

唯一のことは、です属性が無効です.DOCTYPEがHTML5 =>ではないHTML 4.01で使用しようとすると、バリデーターは泣いてしまいますが、サイトは問題なく動作します。

+0

ありがとう@ダーリン、素晴らしい説明。 –

1

あなたが好きそれにアクセスするために.attrを使用することができます。

$(your_selector).attr('data-foo'); 
+0

Responses @xdazzありがとう –

+1

特に、データを読み込むのではなく、 'attr()'では、データはDOMに戻ります。 'data()'では、別々に保持されます。 'attr()'で値を変更し、 'data()'でそれを読み取ると、異なる値が得られます。 'attr()'は文字列のみを扱います。 'data()'は整数のようなネイティブ型に変換します。あなたがしていることを本当に分かっていなければ、あなたが何をしても、 'attr()'と 'data()'を混用しないでください。私の経験則は、元のDOMメタデータの読み込みやDOMプロパティの変更に 'attr()'を使い、アプリケーションの状態に 'data()'を使うことです。 –

1

はい。 ブラウザがHTML5をサポートしていない場合、data -attributeは有効な(X)HTMLではありません。ただし、これはjQueryを使用してデータにアクセスする際には問題ではありません。

+0

ありがとうございました@Alex –

関連する問題