- From: Bjoern Hoehrmann <derhoermi@gmx.net>
- Date: Tue, 15 Nov 2011 00:41:19 +0100
- To: Ryosuke Niwa <rniwa@webkit.org>
- Cc: Anne van Kesteren <annevk@opera.com>, "www-dom@w3.org" <www-dom@w3.org>
* Ryosuke Niwa wrote:
>It simplified
> var table = document.createElement('table');
> table.appendChild(document.createElement('tbody'));
>...
> for (var i = 0; i < labels.length; i++) {
> var tableRow = document.createElement('tr');
> var titleCell = document.createElement('td');
> titleCell.appendChild(document.createTextNode(labels[i]));
> tableRow.appendChild(titleCell);
>
> var valueCell = document.createElement('td');
> var bar = document.createElement('span');
> bar.className = 'bar';
> bar.style.width = <some expression> + '%';
> valueCell.appendChild(bar);
>
> var valueContainer = document.createElement('span');
> valueContainer.appendChild(document.createTextNode(values[i]));
> valueContainer.className = 'value-container';
> valueCell.appendChild(valueContainer);
> tableRow.appendChild(valueCell);
> table.childNodes[0].appendChild(tableRow);
> }
> element.appendChild(table);
>to
> var table = Element.create('table', {}, [Element.create('tbody')]);
>...
> for (var i = 0; i < labels.length; i++) {
> table.childNodes[0].append(
> Element.create('tr', {}, [
> Element.create('td', {}, [labels[i]]),
> Element.create('td', {}, [
> Element.create('span', {'class': 'bar', 'style':
>'width: ' + <same expression> + '%'}),
> Element.create('span', {'class': 'value-container'},
>[values[i]])])
> ])
> );
> }
> element.appendChild(table);
Maybe you are looking for templates, say something like
<template name='example' white-space='tidy'>
<tr>
<td>{0}</td>
<td>
<span class='bar' style='width: {1}%'>
<span class='value-container'>{2}</span>
</span>
</td>
</tr>
</template>
...
var node = fill("example", labels[i], <some expression>, values[i]);
or with named parameters (make some names up), say,
var node = fill("example", {
'0': labels[i],
'1': <some expression>,
'2': values[i]
});
That would seem to suit your use case better.
--
Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de
Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de
25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/
Received on Monday, 14 November 2011 23:41:47 UTC