4

jQueryでは、なぜこれを行うのですか?

$('<div open="whatever">').attr('open')

常に?'open'の代わりに評価する 'whatever'対照的に、これは:

$('<div asdf="whatever">').attr('asdf')

期待どおりに評価し'whatever'ます。

はい、私はそれを認識してopenおり、asdf有効なHTML属性ではありません。「使うだけ」などの答えを探しているのではなくdata-open、上記の振る舞いの説明を探しています。

4

2 に答える 2

5

openは実際にはブール値であることが意図されているHTML5の有効な属性です。その場合、「開いている」が設定されていると、ブラウザはそれをtrueと評価し、「開いている」と返しているのではないかと思います。

なぜ「true」ではなく「open」が返されるのか知りたいです。おそらく、さまざまなブラウザでの実装が不完全なためです。何らかの形で、彼らはその属性を後で使用するために取っておいた可能性があります。

[補遺:コメントによると、これはHTMLがブール値を処理する方法のようです]

于 2012-03-01T22:44:59.317 に答える
0

いくつかのテストを行いましたが、何らかの理由でこれは機能しているようです:

document.getElementById('myID').getAttribute('open');

jQueryは.prop()でも.attr()でも機能しませんが

本当に奇妙ですか?

フィドル

于 2012-03-01T22:59:04.153 に答える