Sunday, August 05, 2007

prototype javascript library Selector example


<ul id="fruits">
<li id="apples">
<h3 title="yummy!" id="hid">Apples</h3>
<ul id="list-of-apples">
<li id="golden-delicious" title="yummy!" >Golden Delicious</li>
<li id="mutsu" title="yummy!">Mutsu</li>
<li id="mcintosh">McIntosh</li>
<li id="ida-red">Ida Red</li>
</ul>
<p id="saying">An apple a day keeps the doctor away.</p>
</li>
</ul>
<script type="text/javascript" charset="utf-8">
function doc(argument) {
document.write("<br>\n");
document.write(argument);
document.write("</br>\n");
}

$$('p', 'h3').each(function (i) {
doc(i.tagName.toLowerCase() + ':' + i.id);
});
doc('======================================================================');
// $$(exps) == document.getElementsBySelector(exps) == Selector.findChildElements(document, $A(exps))
Selector.findChildElements(document, ['p', 'h3']).each(function (i) {
doc(i.tagName.toLowerCase() + ':' + i.id);
});
doc('======================================================================');
doc(Selector.matchElements($('apples', 'saying'), 'p').length);
Selector.matchElements($('apples', 'saying'), 'p').each(function (i) {
doc(i.tagName.toLowerCase() + ':' + i.id);
});
doc(Selector.findElement($('apples', 'golden-delicious', 'mutsu', 'mcintosh', 'ida-red'), 'li', 1).id);
doc('======================================================================');
doc($('apples').match('li'));
doc($('apples').match('p'));
var s = new Selector('p');
doc(s.match($('saying')));
doc('======================================================================');
var l = new Selector('li p');
l.findElements($('fruits')).each(function (i) {
doc(i.tagName.toLowerCase() + ':' + i.id);
});
var l = new Selector('ul li');
l.findElements($('fruits')).each(function (i) {
doc(i.tagName.toLowerCase() + ':' + i.id);
});
doc('======================================================================');
$('apples').getElementsBySelector('[title="yummy!"]').each(function (y) {
doc(y.tagName.toLowerCase());
});
doc('======================================================================');
$('apples').getElementsBySelector( 'p#saying', 'li[title="yummy!"]').each(function (c) {
doc(c.tagName.toLowerCase());
});
doc('======================================================================');
doc($('apples').getElementsBySelector('[title="disgusting!"]').length);
doc('======================================================================');
doc($('apples').getElementsBySelector('[id^="m"]').length);
$('apples').getElementsBySelector('[id^="m"]').each(function (i) {
doc(i.tagName.toLowerCase() + ':' + i.id);
});

</script>

No comments :