Test <p> with id="test" and class="testClass". It contains a
<b> with id="testB".
<p> with id="test2" and class="nonsense testClass"
<ppk> tag.
This <img>has name (and not id!) test3

<div> also has id="test". It should
be ignored, since there's a previous element with id="test".This page tests a few basic DOM methods.
x = document.createElement('P');
alert(x)
Test with an argument that includes brackets
x = document.createElement('<P>');
alert(x)
var test = document.createTextNode(' textNode');
var testEl = document.getElementById('test');
testEl.appendChild(test);
alert(testEl.innerHTML)
Correct answers: 4 and 20
var x = document.getElementById('test');
var y = document.getElementById('test2');
var z = document.getElementById('testB');
alert(x.compareDocumentPosition(y));
alert(x.compareDocumentPosition(z));
Test basic getElementById functionality (correct answer: P):
alert(document.getElementById('test').tagName)
Test if getElementById also works on elements with a name. It shouldn't, but in some browsers
it does.
alert(document.getElementById('test3').tagName)
alert(document.getElementsByTagName('P').length)
Test * argument
alert(document.getElementsByTagName('*').length)
Test custom tags
alert(document.getElementsByTagName('PPK').length)
Test whether test contains testB (correct value: true)
var test = document.getElementById('testB');
alert(document.getElementById('test').contains(test))
Test whether test contains test2 (correct value: false)
var test = document.getElementById('test2');
alert(document.getElementById('test').contains(test))
Test whether test contains itself (correct value: true, which is a bit odd)
var test = document.getElementById('test');
alert(document.getElementById('test').contains(test))
The correct answers are 2 and P, because there are two paragraphs that have
class="testClass"
var cn = document.getElementsByClassName('testClass');
alert(cn.length);
alert(cn[0].tagName);
The correct answers are 1 and P, because there is only one paragraph that ha
class="testClass nonsense"
var cn = document.getElementsByClassName('testClass nonsense');
alert(cn.length);
alert(cn[0].tagName);
The first test should give the first test paragraph a red border; the second test the second paragraph.
var qsa = document.querySelectorAll('.testClass');
qsa[0].style.border = '1px solid red';
var qsa = document.querySelectorAll('.testClass + p');
qsa[0].style.border = '1px solid red';
var x = document.getElementsByTagName('P');
var y = x.item(0);
alert(y.nodeName);