Cannot make the Rowspan proper using jQuery

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • amskape
    New Member
    • Apr 2010
    • 56

    Cannot make the Rowspan proper using jQuery

    Hi Friends,
    I have a doubt regarding How to do a thing ..... I need to make a admin display page
    like

    Color Item
    ========
    Blue Car
    --------------------
    Blue Pen
    --------------------
    Blue Xylophone
    ---------------------
    Red Camera
    ---------------------

    it must show as


    Color Item
    ========
    Car
    Blue Pen
    Xylophone
    ---------------------
    Red Camera
    ---------------------


    I attach my Current code , pls help to make it in second form.
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="en">
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
       var count = $('tbody tr').length;
       //alert("count is :"+count);
       var arr = $("#t1 tr td:even").map(function() { return $(this).text(); }).get();
       
       //
       alert("ddfdf"+arr);
       //var uniarr = $.unique(arr).reverse();
       //alert("uniarr"+uniarr);
       //alert("ffgfgfgtech"+copy);
       
       for(var i=0;i<count;i++) {
       	var j = i+1;
    	rowspan = 1;
    	if(arr[j]==arr[i])
    	{
    	  alert(arr[j]);
    	  rowspan++;
    	}
    	//alert($("."+arr[i]).val());
    	//$("."+arr[i]:first).attr("rowspan",rowspan);
    	
    	//$("."+arr[i]:not(:first)").hide();
    
    	
       }
       
    
     });
    /*window.onload=function() {
    var oTBODY=document.getElementsByTagName('tbody')[0];
    var aTR=oTBODY.getElementsByTagName('tr');
    aTR[1].removeChild(aTR[1].getElementsByTagName('td')[0]);
    var oTD=aTR[0].getElementsByTagName('td')[0];
    oTD.setAttribute('rowspan', 2);
    };*/
    </script>
    
    </head>
    <body>
    <table border="1" cellpadding="10" cellspacing="0" summary="">
        <thead>
            <tr><th>Color</th><th>Item</th></tr>
        </thead>
        <tbody id="t1">
            <tr><td class="Blue">Blue</td><td>Car</td></tr>
            <tr><td class="Blue">Blue</td><td>Boat</td></tr>
            <tr><td class="Blue">Blue</td><td>Motor</td></tr>
            <tr><td class="Red">Red</td><td>Bus</td></tr>
            <tr><td class="Yellow">Yellow</td><td>Scooter</td></tr>
            <tr><td class="Yellow">Yellow</td><td>Bike</td></tr>
        </tbody>
    </table>
    </body>
    </html>
    Thannks,
    Anes
    Attached Files
  • acoder
    Recognized Expert MVP
    • Nov 2006
    • 16032

    #2
    Quick outline of steps to take for one possible method:
    1. Loop over the rows of the table.
    2. Keep a variable and a count of the current colour and a reference to the 1st row of new colour.
    3. When next row is same colour, remove cell and increment count.
    4. When encountering a new colour, set rowspan of first td cell to the count.

    Comment

    Working...