getAttributeNS (W3C DOM Core method)
| Version | Depr. | Static |
|---|---|---|
| DOM2 | No | No |
| IE7 | FF1.5+ | SA3+ | OP9+ |
|---|---|---|---|
| None | Buggy | Full | Buggy |
- Returns
DOMString
Example
var language = document.documentElement.getAttributeNS
('http://www.w3.org/XML/1998/namespace', 'lang');
The example
above retrieves the value of the lang attribute in
the XML namespace of the documentElement,
and saves it to the variable language.
On an RSS
page the documentElement is the root
rss element, so if it looked like this:
<rss version="2.0" xml:lang="en-gb">
Then
the language variable would have the value
en-gb.
Arguments
- namespace (
DOMString) required The
namespaceURIof the attribute to retrieve. A value ofnullmeansno namespace.- name (
DOMString) required The
localNameof the attribute to retrieve.
Description
Get the value of an attribute with the specified name and namespace URI.
Unlike Element nodes, Attr nodes do not
inherit a namespace from the element they're attached to — if an attribute
does not have an explicitly defined namespace then it simply has no
namespace. See Attr for more details.
Return value
The attribute value; if the
attribute is not defined this method should return an empty string,
however some browsers return null (see Compatibility
notes above).
Compatibility
| Internet Explorer | Firefox | Safari | Opera | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 5.5 | 6.0 | 7.0 | 1.5 | 2.0 | 3.0 | 1.3 | 2.0 | 3.0 | 9.0 | 9.5 |
| None | None | None | Buggy | Buggy | Buggy | Buggy | Buggy | Full | Buggy | Buggy |
Internet Explorer doesn't implement this method (it returns undefined).
Opera returns
null for attributes which are not defined, rather than
an empty string.
Additionally, in Opera 9.0 attributes which are not explicitly defined but have a specific default value in this document type are matched if the namespace argument matches the default namespace.
Opera
9.0 returns an interpreted value for a
style/html:style attribute,
rather than the literal value. For example, this value in HTML:
style="color:green;font-size:1.5em;position:fakevalue;left:.5ex;"
returns
this value from getAttributeNS:
color: #008000; font-size: 1.50em; left: 0.50ex;
You
can see how several changes are evident — the color value has been
interpreted to hexadecimal, the font-size and left values have been
normalized with leading and trailing zeros, and the fake value (for which,
read: value it doesn't understand) has been removed. A space has also been
inserted after each colon and semi-colon. (Although
Firefox does a similar interpretation for a
value retrieved using getAttribute, it does not do
this for getAttributeNS.)
In
Safari 1.3 and 2 attributes inherit a namespace
from their owning element, therefore this method matches attributes with
no explicit namespace if the namespace argument matches the default. They
also treat an xml:lang attribute as a
lang attribute, and therefore match it only if the
namespace argument is http://www.w3.org/1999/xhtml
(even when the document isn't any flavour of HTML). Other XML attributes
which have no HTML analog (such as xml:space) are
matched with their namespace correctly, but are also matched if the
namespace argument is an empty string.
In
Firefox and Opera an
empty-string namespace is treated the same as a null
namespace (ie. it's taken to mean no namespace, when it
should be treated as a real namespace URI); only Safari
3 gets this right.
Since namespaces are an XML construct, it's only reasonable to judge the behavior of this method in terms of XML (either on HTML pages in XHTML mode1, or pure XML). The behavioral variations of browsers in HTML mode2 are documented here for interest and reference, but the support summary table above does not consider this behavior.
All supported browsers in HTML mode
behave essentially the same as they do in XHTML mode, except that they
don't recognise namespaces at all. (So
Opera only matches either explicitly
defined attributes in no namespace if the namespace argument is
null or an empty string, or (in the case of
Opera 9.0) attributes which are not
explicitly defined but have a specific default value in this document
type if the namespace argument matches the default namespace;
Firefox only matches explicitly defined
attributes in no namespace if the namespace argument is
null or an empty string; Safari
3 only matches explicitly defined attributes in no
namespace if the namespace argument is null;
Safari 1.3 and 2 only match explicitly
defined attributes without a namespace if the namespace argument
matches the default.)
User-contributed notes
There are no comments yet.
Add a note
To post a note on this topic, please log in with your SitePoint username and password. If you don't have an account yet, you can create a new account for free.