source: trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/javascript/jquery-dom.js @ 90

Last change on this file since 90 was 90, checked in by guille, 15 years ago

importacion de spip-listes-1_9_2

File size: 1.6 KB
Line 
1// DOM element creator for jQuery and Prototype by Michael Geary
2// http://mg.to/topics/programming/javascript/jquery
3// Inspired by MochiKit.DOM by Bob Ippolito
4// Free beer and free speech. Enjoy!
5
6$.defineTag = function( tag ) {
7        $[tag.toUpperCase()] = function() {
8                return $._createNode( tag, arguments );
9        }
10};
11
12(function() {
13        var tags = [
14                'a', 'br', 'button', 'canvas', 'div', 'fieldset', 'form',
15                'h1', 'h2', 'h3', 'hr', 'img', 'input', 'label', 'legend',
16                'li', 'ol', 'optgroup', 'option', 'p', 'pre', 'select',
17                'span', 'strong', 'table', 'tbody', 'td', 'textarea',
18                'tfoot', 'th', 'thead', 'tr', 'tt', 'ul' ];
19        for( var i = tags.length - 1;  i >= 0;  i-- ) {
20                $.defineTag( tags[i] );
21        }
22})();
23
24$.NBSP = '\u00a0';
25
26$._createNode = function( tag, args ) {
27        var fix = { 'class':'className', 'Class':'className' };
28        var e;
29        try {
30                var attrs = args[0] || {};
31                e = document.createElement( tag );
32                for( var attr in attrs ) {
33                        var a = fix[attr] || attr;
34                        e[a] = attrs[attr];
35                }
36                for( var i = 1;  i < args.length;  i++ ) {
37                        var arg = args[i];
38                        if( arg == null ) continue;
39                        if( arg.constructor != Array ) append( arg );
40                        else for( var j = 0;  j < arg.length;  j++ )
41                                append( arg[j] );
42                }
43        }
44        catch( ex ) {
45                alert( 'Cannot create <' + tag + '> element:\n' +
46                        args.toSource() + '\n' + args );
47                e = null;
48        }
49       
50        function append( arg ) {
51                if( arg == null ) return;
52                var c = arg.constructor;
53                switch( typeof arg ) {
54                        case 'number': arg = '' + arg;  // fall through
55                        case 'string': arg = document.createTextNode( arg );
56                }
57                e.appendChild( arg );
58        }
59       
60        return e;
61};
Note: See TracBrowser for help on using the repository browser.