HTML5では、カスタムdata-* attributesを使用できます。しかし、私はそれを理解し、彼らが属性であると考えているので、私はそれらが文字列値を要求すると期待しています。カスタムでのプロパティ、つまりchecked
、required
、hidden
などのブール値のプロパティを許可する代替HTMLがありますか?HTMLにカスタムブール値属性などがありますか?
私は学校のウェブサイトを持っているとしましょう。また、ユーザーが教師であればページ上のいくつかの要素をユーザーと対話させるが、生徒ではないとします。 JavaScriptでは、プロパティーteacher-can-interact
または類似のものを持ついくつかの要素にイベントをアタッチするとよいでしょう。私は明らかにクラスやデータ属性を使うことができますが、クラスは意味的には見えず、yes
値のデータ属性は私の意見ではばかげています。
カスタムプロパティをサポートする方法はありますか、または計画はありますか?
編集:プロパティによって、バージョン1.6(.1)以降のjQueryでの区別を参照しています。プロパティは主にのブール値の属性です。以下のコードがtrueを返すと期待していますが、空の文字列を返します。明らかに
console.log($("div").prop("data-intrusive"));
console.log($("div").attr("data-intrusive"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-intrusive></div>
、そのようなtypeof
や物事をチェックするなどの回避策があります。しかし、文字列ではなく、JavaScriptでtrueまたはfalseを返すカスタムブール値属性を作成する方法があるといいでしょう。
私ははっきりと私はそれらを知っているが、それは私が探しているものではないだと言うとき、なぜあなたはこのへのデータの属性を持っている完全にはよく分かりません。私はカスタム*プロパティについて話しています*。 [このフィドル](https://jsfiddle.net/5ybwg4xz/)を見てください。あなたが見ることができるように、 'hidden'は真を返します。私は、意味論的に疑わしい 'x = yes'に頼る必要なしに、trueを返すカスタムプロパティを望みます。 –
あなたが助けを求めているときに誰かが何かを提供しようとしているときに、あなたが望むものが存在するものによって処理されることを意図しているときに、態度を得る必要はありません。特殊なグローバル属性は、ブラウザによって異なる動作をします。いくつかはブール値を返したり、文字列を返したり、何ができるかを予測しません。 W3は 'id'のような他のプロパティと同様に扱うべきかを定義していません:https://www.w3.org/TR/html-markup/syntax-attr-empty 私の答えで述べたように、カスタム属性をサポートする計画はありません。 – skyline3000
私はあなたが私のコメントを誤解したと思う。私は自分のOPで自分が知っていると言っていたので、なぜデータ属性を混乱させてしまったのかということを真に求めていました。たぶん私は私の質問を言い換える必要があります:文字列*真*として値を定義せずにカスタム*ブール属性*を使用する方法があります。したがって、私は[this](https://jsfiddle.net/yymxhcqq/)がtrueを返すと期待していますが、空の文字列を返します。 –