Thanks Charles for this full and complete response - I very much appreciate it.

Cheers

Bruce

At 09:27 a.m. 6/02/2008, you wrote:

Bruce MacKay wrote:
: Hello folks,
:
: I'm trying to duplicate a row of an existing table using a function
: adapted from
: http://www.nabble.com/Add-Table-row-to12989886s27240.html#a13300133
:
: My problem is that I cannot identify the identifier of the last row
: (of the original table).

    From the html you provided, this gets the last ID.

    // The match should return an array with the current id in the 0
    // position. The "+" sign in front converts this ID to a number.
    var currentID = + $(clonedRow).find('input').attr('id').match( /\d+/
)[0];
    var newID = currentID + 1;

    The problem is that clone() does not work right in Internet Exploder.
There's a patch due, but no advance yet. So, the solution works on FF,
but not on IE. (http://www.fusioncube.net/?p=196)

    In fact, the method above needs filter() to work on IE.

    // Solution for IE.
    var currentID = + $(clonedRow).filter('input').attr('id').match( /\d+/
)[0];
    var newID = currentID + 1;


: function duplicateRow(){
[snip]


    Manipulating the html directly probably isn't the most jQuery-ish
way to handle this.

    $(clonedRow).find( '#bc' + currentID ).eq(0).attr({
        id: 'bc'  + newID,
        name: 'correctans' + newID
    });

    $(clonedRow).find( '#theans' + currentID ).eq(0).attr({
        id: 'theans'  + newID,
        name: 'answer' + newID
    });

    $(clonedRow).find( '#fb' + currentID ).eq(0).attr({
        id: 'fb'  + newID,
        name: 'feedback' + newID
    });

    // Add to the new row to the original table
    $( "#myTable").append( clonedRow );





    So, for now, you may need another solution besides clone().


HTH,

Charles K. Clarkson
--
Mobile Homes Specialist
Free Market Advocate
Web Programmer

254 968-8328

http://www.clarksonenergyhomes.com/wordpress/about/

Reply via email to