2

クラス名が設定されていないHTML要素がある場合、HTMLElement classNameプロパティの値は何ですか?私の最初の考えはそれが未定義であるということでしたが、FFではそれは単なる空の文字列であることがわかりました。私の質問は、現在および将来のすべてのブラウザでこの動作に依存できますか?それはいくつかの仕様の一部ですか、それともひどく書かれたコードのエラーを回避するための単なる別のブラウザのトリックですか?

4

2 に答える 2

4

デフォルトでは常に空の文字列(具体的にDOMStringnull)になります。もちろん、 /ではないことを信頼できますundefined

それが本当に重要なのはgetAttribute()定義です:

戻り値 DOMString
文字列として のAttr値、またはその属性に指定された値またはデフォルト値がない場合は空の文字列。

...これは実際にはプルバックする属性にすぎないため、どちらの場合も同じ動作であり、インターフェイスはこれらの属性を指定するだけです。

于 2010-12-14T16:16:17.333 に答える
4
interface HTMLElement : Element {
           attribute  DOMString            id;
           attribute  DOMString            title;
           attribute  DOMString            lang;
           attribute  DOMString            dir;
           attribute  DOMString            className;
};

http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html.html

また、 DOMStringの定義も参照してください。

だからそれは安全なはずです。

于 2010-12-14T16:17:45.817 に答える