YUI Library JavaScript DHTML





    
Type-Checking Your Data

/*margin and padding on body element
  can introduce errors in determining
  element position and are not recommended;
  we turn them off as a foundation for YUI
  CSS treatments. */
body {
  margin:0;
  padding:0;
}





    #demo {
        border-collapse: collapse;
    }
    #demo th {
        background: #E76300;
        color: #fff;
        padding: .2em 1em;
        border: 1px solid #ccc;
    }
    #demo td {
        padding: .2em 1ex;
        border: 1px solid #ccc;
        text-align: center;
    }
    #demo code {
        background: #eee;
        display: block;
        text-align: left;
    }




Type-Checking Your Data



  

The Yahoo Global Object includes several useful type-checking methods in the YAHOO.lang object.  Click the Check button in each row to evaluate the data.


      



    
        
            Data
            isObject
            isArray
            isFunction
        
    
    
        
            null
            
        
        
            [] or new Array()
            
        
        
            {} or new Object()
            
        
        
            function Foo() {}
            
        
        
            new Foo()
            
        
        
            elem.getElementsByTagName('p')
            
        
        
            YAHOO.util.Dom.
                        getElementsByClassName(
                        'foo','p',elem)

            
        
    


    YAHOO.namespace('example');
    YAHOO.example.checkType = function (val) {
        return {
            'object'  : YAHOO.lang.isObject(val),
            'array'   : YAHOO.lang.isArray(val),
            'function': YAHOO.lang.isFunction(val)
        };
    }
    YAHOO.example.populateRow = function (e, data) {
        var cell = this.parentNode,
            row  = cell.parentNode;
        row.removeChild(cell);
        var td0 = document.createElement('td'),
            td1 = td0.cloneNode(false),
            td2 = td0.cloneNode(false);
        var results = YAHOO.example.checkType(data);
        td0.appendChild(document.createTextNode(
            results['object'] ?   'Y' : 'N'));
        td1.appendChild(document.createTextNode(
            results['array'] ?    'Y' : 'N'));
        td2.appendChild(document.createTextNode(
            results['function'] ? 'Y' : 'N'));
        row.appendChild(td0);
        row.appendChild(td1);
        row.appendChild(td2);
    }
    var foo = function () {};
    var f = document.getElementById('demo');
    YAHOO.util.Event.on('demo-1','click',YAHOO.example.populateRow, null);
    YAHOO.util.Event.on('demo-2','click',YAHOO.example.populateRow, []);
    YAHOO.util.Event.on('demo-3','click',YAHOO.example.populateRow, {});
    YAHOO.util.Event.on('demo-4','click',YAHOO.example.populateRow, foo);
    YAHOO.util.Event.on('demo-5','click',YAHOO.example.populateRow, new foo());
    YAHOO.util.Event.on('demo-6','click',YAHOO.example.populateRow,
        f.getElementsByTagName('tr'));
    YAHOO.util.Event.on('demo-7','click',YAHOO.example.populateRow,
        YAHOO.util.Dom.getElementsByClassName('foo','td',f));





   
  
yui_2.7.0b.zip( 4,431 k)