[解決済み] HTML5の空のデータ属性は有効か?
質問
指定した要素の下にインラインモダルを表示するシンプルなjQueryプラグインを書きたいと思っています。私のアイデアは、要素に指定されたデータ属性に基づいてスクリプトが自動で実行されることです。
非常に基本的な例です。
<p data-modal-target>Hover over me for an inline modal!</p>
<div data-modal-content data-modal-align="right" data-modal-trigger="hover" data-modal-offset="10px"><!-- any desired syntax can go here --></div>
というのは、もし
data-modal-target
は有効なのでしょうか、それとも
data-modal-target="true"
? 私はIE9などより劣るものは気にしません。私の唯一の要件は、それが有効なHTML5であることです。
どのように解決するのですか?
有効ですが、ブール値ではありません。
カスタムデータ属性の指定 は、空の属性の取り扱いに関する変更には言及していませんので 空の属性に関する一般的な規則 が適用されます。
特定の属性は、値を指定せずに属性名だけを指定することができます。
次の例では
disabled
属性は、空の属性構文で与えられています。<input disabled>
empty属性の構文は、次の例のように、属性の値として空の文字列を指定することと全く同じであることに注意してください。
<input disabled="">
つまり、空のカスタムデータ属性を使用することは許可されていますが、booleanとして使用するためには特別な処理が必要なのです。
空の属性にアクセスする場合、その値は
""
. これはファルシーな値なので
if (element.dataset.myattr)
を使って属性が存在するかどうかをチェックすることができます。
を使用する必要があります。
element.hasAttribute('myattr')
または
if (element.dataset.myattr !== undefined)
の代わりに
Lloyd の回答は間違っています。彼はboolean属性のマイクロシンタックスへのリンクに言及していますが
data-*
属性は、仕様では boolean として指定されていません。
関連
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] HTMLのid属性に有効な値は何ですか?
-
[解決済み] HTML5の数値入力のスピンボックスを非表示にすることはできますか?
-
[解決済み] jQueryでdata属性で要素を選択する
-
[解決済み] jQuery データ属性の値に基づいて要素を検索する方法は?
-
[解決済み] data-id属性を取得するにはどうすればよいですか?
-
[解決済み] HTML5で(非空白の)自己閉鎖タグは有効ですか?
-
[解決済み] HTML5を使用したカスタムデータ属性のjQueryセレクタ
-
[解決済み】enctype='multipart/form-data'とはどういう意味ですか?
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] <button> vs. <input type="button" />. Which to use?
-
[解決済み] クリアフィックスとは何ですか?
-
[解決済み] ボディの高さをブラウザの高さの100%にする
-
[解決済み] CSSだけでリンクを無効化する方法
-
[解決済み] HTMLのid属性とname属性の違い
-
[解決済み] Do I use <img>, <object>, or <embed> for SVG files?
-
[解決済み] CSS背景のストレッチとスケール
-
[解決済み] 残りの幅を埋めるためにdivを展開する
-
[解決済み】値を持たない属性を設定する