interface Element : Node { readonly attribute DOMString? namespaceURI; readonly attribute DOMString? prefix; readonly attribute DOMString localName; readonly attribute DOMString tagName; DOMString? getAttribute(DOMString qualifiedName); undefined setAttribute(DOMString qualifiedName, DOMString value); undefined removeAttribute(DOMString qualifiedName); boolean hasAttribute(DOMString qualifiedName); boolean hasAttributes(); HTMLCollection getElementsByTagName(DOMString tagName); HTMLCollection getElementsByClassName(DOMString className); [LegacyNullToEmptyString] attribute DOMString innerHTML; [Reflect] attribute DOMString id; [Reflect=class] attribute DOMString className; readonly attribute Element? nextElementSibling; readonly attribute Element? previousElementSibling; [ImplementedAs=style_for_bindings] readonly attribute CSSStyleDeclaration style; // FIXME: These should all come from a ParentNode mixin readonly attribute Element? firstElementChild; readonly attribute Element? lastElementChild; readonly attribute unsigned long childElementCount; Element? querySelector(DOMString selectors); ArrayFromVector querySelectorAll(DOMString selectors); };