javascript
  • html5
  • 2013-06-04 3 views 5 likes 
    5

    オプションを読み込むためのselect要素に次のデータ属性を格納しています。JSONをデータ属性に格納することは、データ属性を分離することよりも推奨されていますか?

    <select name="DependsOn_Field" data-load='automatic' data-source='web.module().fields' data-value='name' data-display='label' data-filter='exclude_single' id='DependantField'></select> 
    

    私の質問は、1つのDOM要素に多くのデータ属性を保存する必要がある場合にはどのような方法が最適ですか? JSONデータを持つ単一のデータ属性を持つか、必要な値ごとに個別のデータ属性を持つ方がよいでしょうか。

    +0

    個々のデータ属性はおそらくより保守性があります。データフィールド内にJSONを格納すると、JSONを解析する必要があります。 – itsmejodie

    +0

    私は属性がより読みやすくなると思いますが、JSONは多くのデータを格納するためのより論理的な方法になります。 JSONを変更する場合は、JSONをオブジェクトに変換して文字列に変換する必要があります。理想的には、データを保持し、ノードにリンクされたJavaScriptオブジェクトを使用して、この問題を完全に回避します。 – Marty

    +1

    JSONが欲しい値そのものでない場合は、たくさんの属性を "パック"するためにJSONを使用しません。それは単にそれが何であるかではありません。 – acdcjunior

    答えて

    2

    私は質問には、データ属性は静的であると思いますか?おそらく彼らは変わるつもりですか?変更する場合や編集したい場合は、JSONの方がはるかに優れています。しかし、静的でその属性を読み込もうとしているのであれば、データ属性はきちんとしていると思います。これはまさにデータ属性のためです。私はあなたの属性の束を持っているので、それは面倒なように見えますが、それは問題ないと思います。

    EDIT変更または編集によって、クライアントブラウザで動的に編集することを意味します。

    これが役に立ちます。

    1

    これは、その使用方法に完全に依存します。

    値が単純な文字列で、JavaScriptからそれらの値にアクセスしている場合は、属性をdata-の属性に保持するのが適切でしょう。

    自分の価値観は、複雑なJSONオブジェクトである場合、それはdata-属性で完全なJSON値を格納し、(jQueryのが利用可能であることを簡単にするために仮定して)それを読みますヘルパーを定義するために多くの意味をなすことがあります。

    function getElemData(elem) { 
        var $elem = $(elem); 
        var elemData = $elem.data("_jsonData"); 
        if (!elemData) { 
         elemData = JSON.parse($elem.attr("data-json-data")); 
         $elem.data("_jsonData", elemData); 
        } 
        return elemData; 
    } 
    

    最後に、データが(サーバーによって書き込まれ、次に別の場所で直接読み取られて送信される)場合、ブロブ全体を単一のdata-属性に保つことが最も適切です。

    +0

    ありがとうございました。 1つの訂正では、jQueryはデータ属性の値をチェックし、{で始まる場合は解析します。 – Nishanthan

    +0

    Ug、右 - '$ .data'の嫌な行動を忘れてしまった。 Ug。はい - その解析の魔術のために、 'data-'属性にアクセスするために '$ .data'を使用することは絶対に使用されるべきではないので、ヘルパー関数が必要です。この場合、属性またはデータ名を変更する必要があります(これまで行っていたことです)。 –

    関連する問題