これが DOM メソッドであり、innerHTML が非常に人気がある理由を強調しています。最近の DOM メソッドの実行は非常に高速ですが、使用する正当な理由がない限り、コードの量は少し面倒です。
コードの量は、いくつかのヘルパー関数を使用して大幅に削減できるため、innerHTML メソッドと同等です。
var school_list = "School 1, School 2, School 3"
var pct_list = "Percent1, Percent2, Percent3"
function makeTable(schools, percents) {
// Turn input strings into arrays
var s = schools.split(',');
var p = percents.split(',');
// Setup DOM elements
var table = document.createElement('table');
var tbody = table.appendChild(document.createElement('tbody'));
var oRow = document.createElement('tr');
var row;
oRow.appendChild(document.createElement('td'));
oRow.appendChild(document.createElement('td'));
table.appendChild(tbody);
// Write header
row = tbody.appendChild(oRow.cloneNode(true));
row.childNodes[0].appendChild(document.createTextNode('School'));
row.childNodes[1].appendChild(document.createTextNode('Percent'));
// Write rest of table
for (var i=0, iLen=s.length; i<iLen; i++) {
row = tbody.appendChild(oRow.cloneNode(true));
row.childNodes[0].appendChild(document.createTextNode(s[i]));
row.childNodes[1].appendChild(document.createTextNode(p[i]));
}
document.body.appendChild(table);
}
load イベントの後に呼び出すことも、ドキュメント内の適切な場所に配置することもできます。
window.onload = function() {
makeTable(school_list, pct_list);
}