156 lines
4.2 KiB
HTML
156 lines
4.2 KiB
HTML
<html>
|
|
<body>
|
|
<div class="one">
|
|
Line 1
|
|
<div class="two">Line 2</div>
|
|
<p>Line <i>3</i></p>
|
|
</div>
|
|
<div id="test" class="one two">
|
|
<div id="me"></div>
|
|
<div id="dupe"></div>
|
|
<div id="dupe"></div>
|
|
<div id="test2" class="one two">line 4</div>
|
|
<p class="two">line 5</p>
|
|
</div>
|
|
|
|
<pre id="console"></pre>
|
|
<script type="text/javascript">
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
function log(message)
|
|
{
|
|
document.getElementById('console').appendChild(document.createTextNode(message + "\n"));
|
|
}
|
|
|
|
Element.prototype.dump = function()
|
|
{
|
|
return this;
|
|
}
|
|
|
|
NodeList.prototype.dump = function()
|
|
{
|
|
var result = "";
|
|
var length = this.length;
|
|
for (var i = 0; i < length; i++)
|
|
result += this[i] + ", ";
|
|
result += "length: " + length;
|
|
return result;
|
|
}
|
|
|
|
testQuerySelectorAll = function(node, selectorString)
|
|
{
|
|
try {
|
|
log(node.querySelectorAll(selectorString).dump());
|
|
} catch (e) {
|
|
log(e);
|
|
}
|
|
}
|
|
|
|
testQuerySelector = function(node, selectorString)
|
|
{
|
|
try {
|
|
log(node.querySelector(selectorString).dump());
|
|
} catch (e) {
|
|
log(e);
|
|
}
|
|
}
|
|
|
|
var elm = document.getElementById("test");
|
|
|
|
var tagString = elm.outerHTML;
|
|
var range = document.createRange();
|
|
range.selectNode(elm);
|
|
var frag = range.createContextualFragment(tagString);
|
|
|
|
log("Document.querySelectorAll");
|
|
log("");
|
|
|
|
testQuerySelectorAll(document, "#test");
|
|
testQuerySelectorAll(document, "#notthere");
|
|
testQuerySelectorAll(document, "#dupe");
|
|
testQuerySelectorAll(document, ".two");
|
|
testQuerySelectorAll(document, ".one, .two");
|
|
testQuerySelectorAll(document, "@font-face");
|
|
testQuerySelectorAll(document, "");
|
|
testQuerySelectorAll(document, null);
|
|
testQuerySelectorAll(document, undefined);
|
|
testQuerySelectorAll(document, "#test>div");
|
|
|
|
log("");
|
|
log("Element.querySelectorAll");
|
|
log("");
|
|
|
|
testQuerySelectorAll(elm, "#test");
|
|
testQuerySelectorAll(elm, "#test2");
|
|
testQuerySelectorAll(elm, "#notthere");
|
|
testQuerySelectorAll(elm, "#dupe");
|
|
testQuerySelectorAll(elm, ".two");
|
|
testQuerySelectorAll(elm, ".one, .two");
|
|
testQuerySelectorAll(elm, "@font-face");
|
|
testQuerySelectorAll(elm, "");
|
|
testQuerySelectorAll(elm, null);
|
|
testQuerySelectorAll(elm, undefined);
|
|
|
|
log("");
|
|
log("DocumentFragment.querySelectorAll");
|
|
log("");
|
|
|
|
testQuerySelectorAll(frag, "#test");
|
|
testQuerySelectorAll(frag, "#test2");
|
|
testQuerySelectorAll(frag, "#notthere");
|
|
testQuerySelectorAll(frag, "#dupe");
|
|
testQuerySelectorAll(frag, ".two");
|
|
testQuerySelectorAll(frag, ".one, .two");
|
|
testQuerySelectorAll(frag, "@font-face");
|
|
testQuerySelectorAll(frag, "");
|
|
testQuerySelectorAll(frag, null);
|
|
testQuerySelectorAll(frag, undefined);
|
|
|
|
log("");
|
|
log("Document.querySelector");
|
|
log("");
|
|
|
|
testQuerySelector(document, "#test");
|
|
testQuerySelector(document, "#notthere");
|
|
testQuerySelector(document, "#dupe");
|
|
testQuerySelector(document, ".two");
|
|
testQuerySelector(document, ".one, .two");
|
|
testQuerySelector(document, "@font-face");
|
|
testQuerySelector(document, "");
|
|
testQuerySelector(document, null);
|
|
testQuerySelector(document, undefined);
|
|
|
|
log("");
|
|
log("Element.querySelector");
|
|
log("");
|
|
|
|
testQuerySelector(elm, "#test");
|
|
testQuerySelector(elm, "#test2");
|
|
testQuerySelector(elm, "#notthere");
|
|
testQuerySelector(elm, "#dupe");
|
|
testQuerySelector(elm, ".two");
|
|
testQuerySelector(elm, ".one, .two");
|
|
testQuerySelector(elm, "@font-face");
|
|
testQuerySelector(elm, "");
|
|
testQuerySelector(elm, null);
|
|
testQuerySelector(elm, undefined);
|
|
|
|
log("");
|
|
log("DocumentFragment.querySelector");
|
|
log("");
|
|
|
|
testQuerySelector(frag, "#test");
|
|
testQuerySelector(frag, "#test2");
|
|
testQuerySelector(frag, "#notthere");
|
|
testQuerySelector(frag, "#dupe");
|
|
testQuerySelector(frag, ".two");
|
|
testQuerySelector(frag, ".one, .two");
|
|
testQuerySelector(frag, "@font-face");
|
|
testQuerySelector(frag, "");
|
|
testQuerySelector(frag, null);
|
|
testQuerySelector(frag, undefined);
|
|
</script>
|
|
</body>
|
|
</html>
|