October 9, 2000 - Looping via an Iterator
October 9, 2000 Looping via an Iterator Tips: October 2000
Yehuda Shiran, Ph.D.
|
Enumerator
object provides the iterating mechanism you can find in other OOP languages. It supports four methods: atEnd()
, item()
, moveFirst()
, and moveNext()
. The following example shows four links to our four latest tips. These links, together with other links hidden in this tip, form a collection, document.links
. We loop through the items in the collection with a for()
loop. During each iteration we just pop an alert box with the link's URL. The four methods that the Enumerator
object supports are exactly what we need for this for()
loop:
moveFirst()
method.
atEnd()
method.
moveNext()
method.
item()
method.
This is the script that implements this loop:
linkEnum = new Enumerator(document.links);
for (linkEnum.moveFirst(); !linkEnum.atEnd(); linkEnum.moveNext()) {
alert(linkEnum.item());
}
Here are the links and the button you need to click to invoke this script (the first four links are from somewhere else in this tip):
0010108 0010107 0010106 0010105
Here is the code for the links and the script that implements the function triggered by the button:
<A HREF="https://www.webreference.com/js/tips/001008.html">0010108</A>
<A HREF="https://www.webreference.com/js/tips/001007.html">0010107</A>
<A HREF="https://www.webreference.com/js/tips/001006.html">0010106</A>
<A HREF="https://www.webreference.com/js/tips/001005.html">0010105</A>
<FORM>
<INPUT TYPE="button" onclick=printLinks() value="Print Links">
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!--
function printLinks() {
linkEnum = new Enumerator(document.links);
for (linkEnum.moveFirst(); !linkEnum.atEnd(); linkEnum.moveNext()) {
alert(linkEnum.item());
}
}
// -->
</SCRIPT>