从javascript数组创建HTML表

时间:2012-03-03 20:29:36

标签: javascript jquery html arrays

我想在我的页面上获取HTML元素的所有类,将其拆分并将其存储在数组中。之后我想把它写在我的表格中,用id" table"我已经拥有了。

到目前为止,我有这段代码:

var string = $('html').attr('class');
var array = string.split(' ');
var arrayLength = parseInt(array.length);

for (i=0; i<=arrayLength; i++) {
    // code
}

<div id="test><!-- table goes here --></div>

你可以帮我完成剩下的工作吗?

顺便说一句,HTML元素包含来自modernizr.js的类。

PS:代码是纯JS和jQuery的组合。因为我不知道如何在纯JS中获取HTML元素的所有类。有什么想法吗?

3 个答案:

答案 0 :(得分:11)

如果您尝试删除jQuery,请使用以下命令:

// Get array of classes without jQuery
var array = document.getElementsByTagName('html')[0].className.split(/\s+/);

var arrayLength = array.length;
var theTable = document.createElement('table');

// Note, don't forget the var keyword!
for (var i = 0, tr, td; i < arrayLength; i++) {
    tr = document.createElement('tr');
    td = document.createElement('td');
    td.appendChild(document.createTextNode(array[i]));
    tr.appendChild(td);
    theTable.appendChild(tr);
}

document.getElementById('table').appendChild(theTable);

答案 1 :(得分:2)

如果你已经在html中有一个表

<div id="test><table >
    </table>
</div>  

你可以简单地append新行,

var string = $('html').attr('class');
var array = string.split(' ');
var arrayLength = parseInt(array.length);

for (i=0; i<=arrayLength; i++) {
  $("#test table") .append('<tr><td>'+array[i]+'</td></tr>') 
}

答案 2 :(得分:2)

目前尚不清楚是否需要每行或每列的类名。这些示例是每行一个类名。试试这个:

var elm = $('#test'),
    table = $('<table>').appendTo(elm);

$(document.documentElement.className.split(' ').each(function() {
    table.append('<tr><td>'+this+'</td></tr>');
});

我使用本机代码获取HTML元素的classNames:document.documentElement.className,但您也可以使用$('html').attr('class')

使用innerHTML的原生JS示例:

var d = window.document,
    elm = d.getElementById('test'),
    html = '<table>',
    classes = d.documentElement.classNames.split(' '),
    i = 0;

for(; classes[i]; i++) {
    html += '<tr><td>' + classes[i] + '</td></tr>';
}

elm.innerHTML = html + '</table>;