You are here: Designer > API > Designer API > clone()
 

clone()

This function returns a new set containing a copy of each element in a set. To duplicate an existing template element, clone it before calling append(); see append().

Examples

This script performs an iteration over the elements in the results

var row = query("tbody tr", results).clone(); 
query("tbody", results).append(row);

The following script clones an existing table row to match the number of rows in a detail table. Afterwards it iterates over the rows to populate the fields.

// Create the number of rows based on the records in the detail table 
// We start at 1 so the boilerplate row is used too and there is no need to delete that row
for(var r = 1; r < record.tables['detail'].length; r++) {
results.parent().append(results.clone());
}

// Iterate over the rows and populate them with the data from the accompanying data row
query("#table_2 > tbody > tr").each(function(i) {
this.find('@ItemNumber@').text( record.tables['detail'][i].fields["ItemNumber"]);
this.find('@ItemOrdered@').text( record.tables['detail'][i].fields["ItemOrdered"]);
this.find('@ItemTotal@').text( record.tables['detail'][i].fields["ItemTotal"]);
this.find('@ItemDesc@').text( record.tables['detail'][i].fields["ItemDesc"]);
this.find('@nr@').text(i);
});

The following script clones and populates a boilerplate row. Once completed you will need to hide the boilerplate row.