[解決済み】一部のHTMLタグに任意のデータを格納する方法
質問
javascriptで何らかのインタラクションを提供するページを作っています。例として、AJAXリクエストを送信して記事の内容を取得し、そのデータをdivに表示するリンクがあります。この例では、明らかに、各リンクが記事のIDという追加情報を保存する必要があります。私がこれまで行ってきた方法は、この情報を href リンクに置くことでした。
<a class="article" href="#5">
次に、jQueryを使ってa.articleの要素を見つけ、適切なイベントハンドラを添付する。 (ユーザビリティやセマンティクスにこだわる必要はありません。)
とにかく、この方法は有効ですが 匂う また、拡張性もありません (Click 関数に複数のパラメータがある場合はどうなるのでしょうか?パラメータのいくつかがオプションの場合はどうなるのでしょうか?) 。
すぐにわかる答えは、要素の属性を使用することでした。つまり、属性はそのためにあるのです。(ということです(ちょっとだけ)。
<a articleid="5" href="link/for/non-js-users.html">
で
最近の質問
この方法が有効かどうか尋ねたところ、自分でDTDを定義しない限り(私はしていません)、有効でも信頼できるものでもないことがわかりました。よくある回答は、データを
class
属性は、私の選び方が悪かったせいかもしれませんが)、私には、この方がよっぽど胡散臭いです。確かに技術的には有効ですが、優れた解決策とは言えません。
私が過去に使った別の方法は、実際にJSを生成して、それをページに挿入する際に
<script>
タグを作成し、オブジェクトと関連付ける構造体を作成します。
var myData = {
link0 : {
articleId : 5,
target : '#showMessage'
// etc...
},
link1 : {
articleId : 13
}
};
<a href="..." id="link0">
しかし、これではメンテナンスに手間がかかり、一般に非常に面倒です。
では、質問に入ります。 HTMLタグの任意の情報をどのように保存するのですか? ?
どのように解決するのですか?
使用しているHTMLのバージョンは?
HTML 5 では、以下のように記述することはまったく問題ありません。 カスタム属性の先頭にdata-が付く 例えば、以下のようになります。
<div data-internalid="1337"></div>
XHTMLでは、これは本当に有効ではありません。XHTML 1.1 モードであれば、ブラウザはおそらく文句を言うでしょうが、1.0 モードでは、ほとんどのブラウザは黙って無視するだけでしょう。
もし私があなたなら、スクリプトベースのアプローチをとりますね。サーバーサイドで自動生成させることで、メンテナンスの手間を省くことができます。
関連
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】TypeError: res.status は関数ではありません。
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] Webフォームのフィールド/入力タグでブラウザのオートコンプリートを無効にするにはどうすればよいですか?
-
[解決済み] リンクのように動作するHTMLボタンを作成する方法
-
[解決済み] HTMLのid属性に有効な値は何ですか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] How can I set the default value for an HTML <select> element?
-
[解決済み] HTMLマークアップのどこに<script>タグを記述すればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】このエラーの原因は何ですか - "Fatal error: ローカルgruntを見つけることができません"
-
[解決済み】Failed to load resource: net::ERR_FILE_NOT_FOUND loading json.js
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み】DOMException: サポートされているソースが見つからなかったため、読み込みに失敗しました。
-
[解決済み】WebSocket接続に失敗しました。WebSocket のハンドシェイク中にエラーが発生しました。予期しない応答コードです。400
-
[解決済み】PhantomJS 2.1.1を使用してReactJSアプリケーションをレンダリングできない理由とは?
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み】Vueが定義されていない
-
[解決済み] HTMLタグにカスタム属性を追加することはできますか?
-
[解決済み】カスタム属性 - 賛成か反対か?