These compatibility tables detail support for the W3C DOM Core Level 1 and 2 modules in all modern browsers.
Want these Tables updated? Join the donation drive.
On this page I grouped the various W3C DOM methods and properties in nine tables. Basically you must know the first five tables by heart and you'll rarely need the last four tables.
These two methods create new HTML elements which you can then insert into the document.
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
createElement()
Create a new element
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
var x = document.createElement('P')
Create a new HTML element node <P> and temporarily place it in x,
which is later inserted into the document.
|
||||||||||||||||||||||||
|
createTextNode()
Create a new text node
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
var x = document.createTextNode('text')
Create a text node with content |
||||||||||||||||||||||||
These methods are meant for getting the HTML elements you need from the document.
You must know these methods by heart.
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
getElementById()
Get the element with this ID
Test page Lower case 'd'!! |
Almost | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
var x = document.getElementById('test')
Take the element with If there is more than one element with
|
||||||||||||||||||||||||
|
getElementsByClassName()
Get a nodeList of the elements with this class.
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
document.getElementsByClassName('test')
document.getElementsByClassName('test test2')
The first expression returns a nodeList with all elements that have a |
||||||||||||||||||||||||
|
getElements
Get all tags of this type
Test page |
Incom |
Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
var x = document.getElementsByTagName('P')
Make
var x = y.getElementsByTagName('P')
Gets all paragraphs that are descendants of node
|
||||||||||||||||||||||||
|
querySelectorAll()
Get a nodeList of elements by CSS selector
Test page |
No | Yes | No | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||
document.querySelectorAll('.testClass')
document.querySelectorAll('.testClass + p')
Returns a nodeList with all elements that have a Essentially, this method allows you to use CSS syntax to retrieve elements. |
||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
These four properties give basic information about all nodes. What they return depends on the
node type. They are read-only, except for nodeValue.
There are three basic node types: element nodes (HTML tags), attribute nodes and text nodes. I test these properties for all these three types and added a fourth node type: the document node (the root of all other nodes).
You must know these properties by heart.
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
nodeName
The name of the node in UPPER CASE
Test page |
Incom |
Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||||||||||||
x.nodeName The name of node
|
||||||||||||||||||||||||||||||||||
|
nodeType
The type of the node
Test page |
Incom |
Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||||||||||||
x.nodeType The type of node
|
||||||||||||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||||||||||||
|
nodeValue
The value of the node, if any. Read/write
Test page |
Incom |
Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||||||||||||
x.nodeValue Get the value of node x.nodeValue = 'Test' Set the value of node
|
||||||||||||||||||||||||||||||||||
|
tagName
The tag name of an element node
Test page Don't use |
Almost | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||||||||||||
x.tagName Get the tag name of node
My advice is not to use
|
||||||||||||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||||||||||||
Five properties and two arrays for walking through the DOM tree. Using these properties, you can reach nodes that are close to the current node in the document structure.
In general you shouldn't use too many of these properties. As soon as you're doing something like
x.parentNode.firstChild.nextSibling.children[2]
your code is too complicated. Complex relationships between nodes can suddenly and unexpectedly change when you alter the document structure, and altering the document structure is the point of the W3C DOM. In general you should use only one or two of these properties per action.
You must know these properties by heart.
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
childNodes[]
An array with all child nodes of the node
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.childNodes[1] Get the second child node of node The
|
||||||||||||||||||||||||
|
children[]
An array with all child element nodes of the node
Test page |
Almost | Yes | No | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||
x.children[1] Get the second element child node of node Where
|
||||||||||||||||||||||||
|
firstChild
The first child node of the node
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.firstChild Get the first child node of node
|
||||||||||||||||||||||||
|
lastChild
The last child node of the node
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.lastChild Get the last child of node
|
||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
|
nextSibling
The next sibling node of the node
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.nextSibling Get the next child of the parent of
|
||||||||||||||||||||||||
|
parentNode
The parent node of the node
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.parentNode Get the parent node of |
||||||||||||||||||||||||
|
previousSibling
The previous sibling node of the node
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.previousSibling Get the previous child of the parent of
|
||||||||||||||||||||||||
|
sourceIndex
The index number of the node in the page source
Test page |
Yes | Incor |
No | No | No | Yes | To be tested | |||||||||||||||||
x.sourceIndex Get the
|
||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
A few useful properties that should have been in the DOM from the start but mysteriously weren’t.
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
childElementCount
The number of element children
Test page |
No | Yes | No | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||
x.childElementCount |
||||||||||||||||||||||||
|
firstElementChild
The first child that is an element node
Test page |
No | Yes | No | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||
x.firstElementChild |
||||||||||||||||||||||||
|
lastElementChild
The last child that is an element node
Test page |
No | Yes | No | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||
x.lastElementChild |
||||||||||||||||||||||||
|
nextElementSibling
The next element node sibling
Test page |
No | Yes | No | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||
x.nextElementSibling |
||||||||||||||||||||||||
|
previousElementSibling
The previous element node sibling
Test page |
No | Yes | No | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||
x.previousElementSibling |
||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
These five methods allow you to restructure the document. The average DOM script uses at least two of these methods.
The changes in the document structure are applied immediately, the whole DOM tree is altered. The browser, too, will immediately show the changes.
You must know these methods by heart.
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
appendChild()
Append a child node as the last node to an element
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.appendChild(y) Make node If you append a node that's somewhere else in the document, it moves to the new position. |
||||||||||||||||||||||||
|
cloneNode()
Clone a node
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x = y.cloneNode(true | false) Make node Later you insert the clone into the document. |
||||||||||||||||||||||||
|
insertBefore()
Insert a node into the child nodes of an element
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.insertBefore(y,z) Insert node |
||||||||||||||||||||||||
|
removeChild()
Remove a child node from an element
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.removeChild(y) Remove child |
||||||||||||||||||||||||
|
replaceChild()
Replace a child node of an element by another child node
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.replaceChild(y,z) Replace node |
||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
These methods are for manipulating text data, i.e. the contents of text nodes.
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
appendData()
Append data to a text node
Test page |
No | Yes | Buggy | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||
x.appendData(' some extra text')
Appends the string
|
||||||||||||||||||||||||
|
data
The content of a text node
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.data The content of Can also be set: x.data = 'The new text' |
||||||||||||||||||||||||
|
deleteData()
Delete text from a text node
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x.deleteData(4,3) Delete some data from |
||||||||||||||||||||||||
|
insertData()
Insert text into a text node
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x.insertData(4,' and now for some extra text ') Insert the string |
||||||||||||||||||||||||
|
normalize()
Merge adjacent text nodes into one node
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x.normalize() All child nodes of node |
||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
|
replaceData()
Replace text in a text node
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x.replaceData(4,3,' and for some new text ') Replace three characters, beginning at the fifth one, of node | ||||||||||||||||||||||||
|
splitText()
Split a text node into two text nodes
Test page |
Buggy | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.splitText(5) Split the text node
|
||||||||||||||||||||||||
|
substringData()
Take a substring of the text in the text node
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x.substringData(4,3) Takes a substring of |
||||||||||||||||||||||||
|
wholeText
The text of a text node plus the text in directly adjacent text nodes. Read only.
Test page |
No | Yes | No | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||
|
This read-only property is useful if you want to get the entire text at a certain point and don’t want to be bothered by borders between text nodes. |
||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
A bloody mess. Try influencing attributes in this order:
x.id or y.onclick.getAttribute() or setAttribute().attributes[]. It's worse than anything else.In my view any method or property concerning attribute nodes should also work on the style
attribute, event handlers and custom attributes. If not I judge the method or property incomplete.
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
attributes[index]
An array with the attributes of a node, accessed by index number, in the order they're
defined in the source code.
Test page Do not use Use getAttribute() instead
|
Alter |
Incor |
Incor |
Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.attributes[1] This array consists of all defined attributes in the source code order .
Do yourself a favour and don't use the indexed | |||||||||||||||||||||||||
|
attributes[key]
An array with the attributes of a node, accessed by attribute name
Test page |
Incor |
Almost | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x.attributes['align'] Get the align attribute object of node
| |||||||||||||||||||||||||
|
createAttribute() and setAttributeNode()
Create a new attribute node and append it to an element node.
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
z = document.createAttribute('title');
z.value = 'Test title';
x.setAttributeNode(z)
This creates a title attribute with a value and sets it on node |
|||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | ||||||||
|
getAttribute()
Get the value of an attribute
Test page |
Almost | Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.getAttribute('align')
Gives the value of the align attribute of node
|
|||||||||||||||||||||||||
|
getAttributeNode()
Get an attribute node
Test page |
No | Almost | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x.getAttributeNode('align')
Get the attribute object
|
|||||||||||||||||||||||||
|
hasAttribute()
Check if a node has a certain attribute
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.hasAttribute('align')
Returns |
|||||||||||||||||||||||||
|
hasAttributes()
Check if a node has attributes
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.hasAttributes() Returns |
|||||||||||||||||||||||||
|
name
The name of an attribute
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.name The name of attribute node |
|||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | ||||||||
|
removeAttribute()
Remove an attribute node
Test page |
Almost | Yes | Yes | Yes | Yes | Almost | To be tested | ||||||||||||||||||
x.removeAttribute('align')
Remove the
|
|||||||||||||||||||||||||
|
remove
Remove an attribute node
Test page | No | Mini |
Incom |
Yes | Yes | Yes | Yes | Almost | To be tested | ||||||||||||||||
x.removeAttributeNode(x.attributes['align'])
x.removeAttributeNode(x.attributes[1])
x.removeAttributeNode(x.getAttributeNode('align'))
Removes the attribute node. There is little difference with
|
|||||||||||||||||||||||||
|
setAttribute()
Set the value of an attribute
Test page |
Incom |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.setAttribute('align','right')
Set the align attribute of node
|
|||||||||||||||||||||||||
|
setAttributeNode()
|
See createAttribute()
|
||||||||||||||||||||||||
|
value
The value of an attribute
Test page |
No | Almost | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x.value The value of attribute
| |||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | ||||||||
A lot of miscellaneous methods and properties that you'll rarely need. I use only two of them in an actual script.
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
compareDocument
Gives the relative place of one element compared to another.
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x.compareDocumentPosition(y) Compares the document (DOM) position of element
All relevant numbers are added, and this sum is returned. So if |
||||||||||||||||||||||||
|
contains()
Check whether an element contains another element
Test page |
Yes | No | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.contains(y) If node See this blog post for a Firefox workaround. (And yes, Firefox’s constant refusal to implement this very useful method is becoming extremely annoying.) |
||||||||||||||||||||||||
|
createDocument()
Create a new document
Test page |
No | Incor |
Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x = document.implementation.createDocument('','',null)
Creates a new XML document.
|
||||||||||||||||||||||||
|
createDocument
Create a document fragment
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x = document.createDocumentFragment(); x.[fill with nodes]; document.[somewhere].appendChild(x); Create a fragment, add a lot of nodes to it, and then insert it into the document. Note that the fragment itself is not inserted, only its child nodes. |
||||||||||||||||||||||||
|
documentElement
The HTML tag
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
document.documentElement Represents the root element of the XML document. In any HTML document, the
|
||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
|
getElements
Get elements by their name attribute
Test page |
Incor |
Yes | Yes | Yes | Incor |
To be tested | ||||||||||||||||||
var x = document.getElementsByName('test')
Create a nodeList with all elements that have On my test page the
|
||||||||||||||||||||||||
|
hasChildNodes()
Check if the node has child nodes
Test page |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
x.hasChildNodes() Returns |
||||||||||||||||||||||||
|
item()
Access an item in an array
Test page Not necessary in JavaScript |
Yes | Yes | Yes | Yes | Yes | To be tested | ||||||||||||||||||
document.getElementsByTagName('P').item(0)
The same as The You don't need |
||||||||||||||||||||||||
|
ownerDocument
The document that 'owns' the element
Test page |
No | Yes | Yes | Yes | Yes | Yes | To be tested | |||||||||||||||||
x.ownerDocument Refers to the document object that 'owns' node |
||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
As usual Microsoft has extended the standard somewhat. Though sometimes its extensions are
brilliant (innerHTML springs to mind), in the case of the DOM Core they aren't.
Note the difference between W3C and Microsoft methods. The W3C methods are owned by the parent element of the node you want to adjust, the Microsoft methods by the node itself.
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
applyElement()
Something with nodes
Test page |
Yes | No | No | No | No | To be tested | ||||||||||||||||||
var y = document.createElement('i');
x.applyElement(y)
The |
||||||||||||||||||||||||
|
clearAttributes()
Remove all attributes from a node
Test page |
Incom |
No | No | No | No | To be tested | ||||||||||||||||||
x.clearAttributes() Remove all attributes from node
|
||||||||||||||||||||||||
|
merge
Copy all attributes of one node to another node
Test page |
Yes | No | No | No | No | To be tested | ||||||||||||||||||
x.mergeAttributes(y) Copy all of node |
||||||||||||||||||||||||
|
removeNode()
Remove a node
Test page |
Yes | No | No | No | Yes | To be tested | ||||||||||||||||||
x.removeNode(true | false) Remove node |
||||||||||||||||||||||||
|
replaceNode()
Replace a node by another node
Test page |
Yes | No | No | No | No | To be tested | ||||||||||||||||||
x.replaceNode(y) Replace node |
||||||||||||||||||||||||
|
swapNode()
Swap two nodes
Test page |
Yes | No | No | No | No | To be tested | ||||||||||||||||||
x.swapNode(y) Put node |
||||||||||||||||||||||||
| Selector | IE 5.5 | IE 6 | IE 7 | IE8 | IE9 pr3 | FF 3.0 | FF 3.5 | FF 3.6 | FF 4b1 | Saf 4.0 Win | Saf 5.0 Win | Chrome 4 | Chrome 5 | Opera 10.10 | Opera 10.53 | Opera 10.60 | Konqueror 4.x | |||||||