DOM要素のgetAttribute/setAttribute呼び出しを使用して要素の内容に関する追加情報を関連付けることをお勧めしますか?カスタム属性名でDOM要素の属性を使用することをお勧めします
たとえば、setAttribute("MY_ATTRIBUTE_VALUE", "...")
に電話します。ここで、MY_ATTRIBUTE_VALUEは<div>
に適用されません。
ありがとうございます!
DOM要素のgetAttribute/setAttribute呼び出しを使用して要素の内容に関する追加情報を関連付けることをお勧めしますか?カスタム属性名でDOM要素の属性を使用することをお勧めします
たとえば、setAttribute("MY_ATTRIBUTE_VALUE", "...")
に電話します。ここで、MY_ATTRIBUTE_VALUEは<div>
に適用されません。
ありがとうございます!
custom data attributesを設定している限り、これらの要素に関するメタデータを保持している限り、非常に良い方法です。データ属性の形式はdata-name
です。name
は任意の有効な記述子になります。
伝統的に人々はクラスを追加し、場合によっては(クラスが属性の状態を記述し、クラスが主に使用されるスタイルクラスを表す場合など)、まだ適切です。
あなたは間違いなくデータ属性を使用する必要があります。ここにそれらに関する記事があります。 HTML5 Custom Data Attributes。
マークアップがプレゼンテーションに関するものだと思われる場合、データをHTML要素に関連付けることはその考え方と矛盾します。それが問題ではないと思われる場合は、HTML5で導入されたdata-属性を使用してください。ただし、HTML5は標準ではなく、まだ広くサポートされていません(「サポートされている」という用語が常に変化する「リビング仕様」の意味で意味を持つ場合)。しかし、data-の属性はほとんどのブラウザを動揺させることはありませんが、get/setAttributeを使用してブラウザに依存しない方法で確実にアクセスする必要があります。
プレゼンテーションを変更して同じデータの複数のビューを提供できるように、プレゼンテーションとデータを分離しておくことをお勧めします。データをプレゼンテーションにバインドすると、プレゼンテーションの能力が低下します。また、データモデルを変更すると、不必要にプレゼンテーションに影響が出る可能性があります。
オブジェクトにデータを格納し、それを要素(たとえば要素のid)に関連付けると、データへのアクセスが非常に高速になります(直接プロパティアクセスは文字列を渡す関数呼び出しよりもはるかに高速です) UIとデータモデル。
あなたの答えは、標準ではなく、完全にはサポートされていないHTML5に基づいていると思われます。また、マークアップはデータではなくプレゼンテーションに関するものであるため、プレゼンテーションオブジェクトとデータを関連付けることは、プレゼンテーションとデータを分離した状態に保つこととは矛盾しています。 – RobG
@RobG、あなたはどういうことを言っていますか? HTML5 **は**標準です。すべてのものが幅広くサポートされているかどうかは関係ありません:getter/setterメソッドを使用したhttp://caniuse.com/データ属性はすべてのブラウザ(ie6を含む)で動作します:http://stackoverflow.com/questions/ 2412947/do-html5-custom-data-attributes-work-in-ie/6)を使用します。懸念の分離は、データ属性を使用しない理由ではなく、賢明に使用することを意味します。データの存在は、どのような方法でも異なるビューでのマークアップの表示を変更することはないので、何も傷つけることはありません。 – davin
ダビン - HTML5 **は**標準ではありません。最新のW3Cバージョンは[作業草案](http://www.w3.org/TR/html5/)です。様々な編集者や作業草案もあるが、推薦状には達していない。すべてのブラウザをサポートするブラウザがないため、サポートは特定の機能の点で賢明にしか記述できません。プレゼンテーションオブジェクトにデータを配置する場合、プログラムはデータを取得するオブジェクトを知る必要があります。 1つ以上のデータオブジェクトの提示が結合されている場合、または1つのオブジェクトが2つ以上のUIオブジェクトに分散されている場合、データモデルは、 – RobG