|
If you have worked with client side javascript programming then you will be well
aware about most of the below functions, tips and tricks, but believe me there
are some tested functions which you might have not worked with.
Shabir Hakim
here are what I believe to the top ten greatest custom JavaScript functions in
use today.
Upon further reading this article, it is suggested that for this article in
particular the reader should use an alternate style with cleaner whitespace and
larger margins.
addEvent()
Surely a staple to event attachment! Regardless to what version you
use written by whatever developer, it does what it says it does. And of course
as you might of known, I?ve put together quite a handy version myself recently
of
addEvent()
with some help from the contest winner and Mark Wubben along with a few minor
syntax adjustments.
addEvent() function function addEvent(elm, evType, fn, useCapture) { if (elm.addEventListener) { elm.addEventListener(evType,
fn, useCapture); return true; } else if (elm.attachEvent) { var r = elm.attachEvent('on'
+ evType, fn); return r; } else { elm['on' + evType] = fn; } }
addLoadEvent()
function highly adopted by many others as a simple way to add events to
trigger after the page has loaded. This of course attaches all your events to
the onload event handler which some still see as necessary, nevertheless it does
exactly what it?s supposed to, and does it well.
addLoadEvent()
function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload
!= 'function') { window.onload = func; } else { window.onload = function() { oldonload();
func(); } } }
Of course another method is to simply assign multiple event listeners to the
window by using addEvent() as described in number 10 as
follows:
assigning multiple load events to window
addEvent(window,'load',func1,false); addEvent(window,'load',func2,false); addEvent(window,'load',func3,false);
8) getElementsByClass()
Several developers have implemented their own version and no one single version
has proven to be better than another. This function was spawned from developers
needing a quick and elegant way of grabbing elements by a className and to a
developer?s surprise, it?s not an original DOM method as one might think?after
all, we have getElementById, getElementsByName(), getElementsByTagName, what the
hell happened to getElementsByClass??? Here it is in all its glory:
getElementsByClass
function getElementsByClass(searchClass,node,tag) { var classElements = new Array();
if ( node == null ) node = document; if ( tag == null ) tag = '*'; var els = node.getElementsByTagName(tag);
var elsLen = els.length; var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
for (i = 0, j = 0; i < elsLen; i++) { if ( pattern.test(els[i].className) ) {
classElements[j] = els[i]; j++; } } return classElements; }
Simply add a class name to the beginning of the function and the 2nd and 3rd
arguments are optional and the magic is done for you!
7) cssQuery()
Way to query the DOM according to CSS properties which supports a multitude
of selectors. However in all fairness, this is more like a mini-library and not
quite so light on the weight factor, but still, a very kick-ass function. Due to
its length (and CC licensing) I won?t post it on this site.
6) toggle()
To be totally honest, there are probably more variations of this function than
there needs to be. The history of ?toggling? basically comes down to
showing/hiding an element upon an event being fired. To make matters much
simpler, I too have put one together. But by no means is it considered the
ultimate toggle function, but it does do the basic functionality of showing and
hiding.
toggle()
function toggle(obj) { var el = document.getElementById(obj); if ( el.style.display
!= 'none' ) { el.style.display = 'none'; } else { el.style.display = ''; } }
5) insertAfter()
This is just like getElementsByClass, it isn?t. So rather than pulling the
function straight out of the book.
insertAfter() on public domain
function insertAfter(parent, node, referenceNode) { parent.insertBefore(node,
referenceNode.nextSibling); }
4) inArray()
This too is very sad that this isn?t part of the DOM core functionality. But
hey, it makes for fun references like this! This function however isn?t quite a
function; it?s a prototype that extends the DOM Array object. I remember one day
thinking to myself ?surely I can do this in PHP, it?s gotta be in JavaScript.?
Well, this extension makes it work just like you?d expect if you?re a PHP
developer.
inArray Prototype Array object
Array.prototype.inArray = function (value) { var i; for (i=0; i < this.length;
i++) { if (this[i] === value) { return true; } } return false; };
3, 2, & 1) getCookie(), setCookie(), deleteCookie()
I honestly don?t know what I would do without these guys. I hate the DOM
implementations of setting cookies in JavaScript. In PHP
it?s so easy, and it?s easy for one main reason, they work just like
the functions below. All three of these functions were found to be public domain
and free to use.
getCookie(), setCookie(), deleteCookie() open domain
function getCookie( name ) { var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1; if ( ( !start ) && ( name != document.cookie.substring(
0, name.length ))){ return null; } if ( start == -1 ) return null; var end = document.cookie.indexOf(
';', len ); if ( end == -1 ) end = document.cookie.length; return unescape( document.cookie.substring(
len, end ) ); } function setCookie( name, value, expires, path, domain, secure )
{ var today = new Date(); today.setTime( today.getTime() ); if ( expires ) { expires
= expires * 1000 * 60 * 60 * 24; } var expires_date = new Date( today.getTime()
+ (expires) ); document.cookie = name+'='+escape( value ) + ( ( expires ) ? '; expires='+expires_date.toGMTString()
: '' )+ ( ( path ) ? ';path=' + path : '' ) + ( ( domain ) ? ';domain=' + domain
: '' ) + ( ( secure ) ? ';secure' : '' ); } function deleteCookie( name, path, domain
) { if ( getCookie( name ) ) document.cookie = name + '=' + ( ( path ) ? ';path='
+ path : '') + ( ( domain ) ? ';domain=' + domain : '' ) + '; expires=Thu, 01-Jan-1970
00:00:01 GMT'; }
The Prototype Dollar Function
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
Tell me that?s not beautiful! Short not only by name, but by reference. It not
only takes in strings, it takes objects too. You can pass it one argument, or
pass it many! This by far is my favorite function of all time which will provide
years and years of handiness.
JavaScript triggers
The simplest JavaScript trigger is the id attribute:
<div id="navigation"> <ul> <li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li> <li><a href="#">Link
3</a></li> </ul> </div> var x = document.getElementById('navigation');
if (!x) return; var y = x.getElementsByTagName('a'); for (var i=0;i<y.length;i++)
y[i].onmouseover = addBehavior;
Unfortunately there are situations where you can?t use id as a trigger:
- An id can be used only once in a document, and sometimes you want to add the
same behavior to several (groups of) elements.
- Occasionally a script needs more information than just ?deploy behavior here.?
Let?s take form scripts as an example of both problems. It would be useful to
add form validation triggers to the XHTML, for instance something that says
?this field is required.? If we?d use such a trigger we?d get a simple script
like the one below.
Advanced triggers
function validateForm() { var x = document.forms[0].elements; for (var i=0;i<x.length;i++)
{ if ([this field is required] && !x[i].value) // notify
user of error } }
But how do we create an XHTML trigger that tells the script a certain
field is required? Using an id isn?t an option: we need a solution that works on
an unlimited amount of form fields. It would be possible to use the class
attribute to trigger the behavior:
<input name="name" class="required" /> if (x[i].className == 'required'
&& !x[i].value) // notify user of error
However, the class attribute?s proper use is defining CSS triggers. Combining
CSS and JavaScript triggers is not impossible, but it can quickly lead to a
confused jumble of code:
<input name="name" class="largefield required" /> if ( x[i].className.indexOf('required')
!= -1 && !x[i].value )
Besides, triggers can grow to be more complicated than just a ?deploy
behavior here? command. Sometimes you?ll want to add a value to the trigger. A
trigger value would make the behavior layer much more versatile, since it can
now respond to each XHTML element?s individual requirements instead of
mindlessly executing a standard script.
Take a form in which some textareas have a maximum length for their value. The
old MAXLENGTH attribute doesn?t work on textareas, so we have to write a script.
In addition, not all textareas in the form have the same maximum length, making
it necessary to store the maximum length of each individual textarea somewhere.
We want something like this:
Information-carrying triggers
var x = document.getElementsByTagName('textarea'); for (var i=0;i<x.length;i++)
{ if ([this textarea has a maximum length]) x[i].onkeypress = checkLength;
} function checkLength() { var max = [read out maximum length];
if (this.value.length > max) // notify user of error }
The script needs two bits of information:
- Does this textarea have a maximum length? This is the general trigger that
alerts the script that some behavior is coming up.
- What is the maximum length? This is the value the script needs to properly check
user input.
And it is here that the class-based solution doesn?t really serve any more.
Technically it?s still possible, but the necessary code becomes too complicated.
Take a textarea with a CSS class "large" that is required and has a maximum
length of 300 characters:
<textarea class="large required maxlength=300"> </textarea>
Not only does this example mix presentation and two separate sets of behavior,
it also becomes tricky to read out the actual maximum length of the textarea:
var max = this.className.substring( this.className.indexOf('maxlength')+10 ); if (this.value.length > max) // notify user of error
Note that this bit of code works only when we put the maxlength trigger last in
the class value. If we want to allow a maxlength trigger anywhere in the class
value (because we want to add another trigger with a value, for instance) the
code becomes even more complicated.
The problem
So this is our problem for today. How do we add good JavaScript triggers that
allow us to pass both a general alert (?deploy behavior here?) and an
element-specific value to the script?
Technically, adding this information to the class attribute is possible, but is
it allowed to use this attribute for carrying information it was not designed to
carry? Does this violate the separation of behavior and presentation? Even if
you feel there is no theoretical obstacle, it remains a complicated solution
that requires complicated JavaScript code.
It is also possible to add the trigger to other existing attributes like lang or
dir, but here, again, you?d use these attributes to carry information they
aren?t designed for.
Custom attributes
I opt for another solution. Let?s take a second look at the textarea maxlength
example. We need two bits of information:
- Does this textarea have a maximum length?
- What is the maximum length?
The natural, semantic way to express this information is to add an attribute to
the textarea:
<textarea class="large" maxlength="300" > </textarea>
The presence of the maxlength attribute alerts the script to check user input in
this textarea, and it can find the maximum length of this specific textarea in
the value of the attribute. As long as we?re at it we can port the ?required?
trigger to a custom attribute, too. required="true", for instance, though any
value will do because this trigger just gives a general alert and doesn?t carry
extra information.
<textarea class="large" maxlength="300" required="true" > </textarea>
Technically there?s no problem. The W3C DOM getAttribute() method allows us to
read out any attribute from any tag. Only Opera up to version 7.54
doesn?t allow us to read out existing attributes (like src) on the
wrong tag (like <h2>). Fortunately later versions of this browser support
getAttribute() fully.
So this is my solution:
function validateForm() { var x = document.forms[0].elements; for (var i=0;i<x.length;i++)
{ if (x[i].getAttribute('required') && !x[i].value) //
notify user of error } } var x = document.getElementsByTagName('textarea'); for
(var i=0;i<x.length;i++) { if (x[i].getAttribute('maxlength'))
x[i].onkeypress = checkLength; } function checkLength() { var max = this.getAttribute('maxlength');
if (this.value.length > max) // notify user of error }
In my opinion this solution is easy to implement and consistent with the form
JavaScript triggers may take: a name/value pair where the presence of the name
triggers the behavior and the value gives the script extra information, allowing
you to customize the behavior for each individual element. Finally, adding these
triggers to the XHTML would be extremely simple even for novice webmasters.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
oThis function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
This function straight up kicks so much ass. First of all, just look at it.
Prototype function $
function $() { var elements = new Array(); for (var i = 0; i < arguments.length;
i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element);
if (arguments.length == 1) return element; elements.push(element); } return elements;
} // Sample Usage: var obj1 = document.getElementById('element1'); var obj2 = document.getElementById('element2');
function alertElements() { var i; var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i<elements.length alert="" code="" elements[i].id="" i=""></elements.length>
|