简体   繁体   English

如何使用Javascript dom创建给定的html格式?

[英]How to create the given html format using Javascript dom?

I have to get the data printed like the below format using document object model. 我必须使用文档对象模型来获取像以下格式一样打印的数据。 I am having the problem in creating the below html. 我在创建以下html时遇到问题。

name1       name2       name3
50          48          56

name4       name5       name6
52          58          49

example using below format: 使用以下格式的示例:

  var table = document.createElement("table");
  var row = document.createElement("row");

Create a element 创建一个元素

var table = document.createElement("table");

Create an empty element and add it to the 1st position of the table: 创建一个空元素并将其添加到表的第一位置:

var row = table.insertRow(0);

Insert new cells ( elements) at the 1st and 2nd position of the "new" element: 在“新”元素的第一和第二位置插入新的单元格(元素):

var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);

// Add some text to the new cells: //在新单元格中添加一些文本:

cell1.innerHTML = "NEW CELL1";
cell2.innerHTML = "NEW CELL2";

See reference 见参考

Use tr instead of row 使用tr代替row

var row0 = document.createElement("tr");

Here is a quick start for what you want to do: 这是您要执行的操作的快速入门:

 var table = document.createElement("table"); var row0 = document.createElement("tr"); var a0 = document.createElement("td"); a0.textContent = "name1"; var a1 = document.createElement("td"); a1.textContent = "name2"; var a2 = document.createElement("td"); a2.textContent = "name3"; var row1 = document.createElement("tr"); var b0 = document.createElement("td"); b0.textContent = "50"; var b1 = document.createElement("td"); b1.textContent = "48"; var b2 = document.createElement("td"); b2.textContent = "56"; row0.appendChild(a0); row0.appendChild(a1); row0.appendChild(a2); row1.appendChild(b0); row1.appendChild(b1); row1.appendChild(b2); table.appendChild(row0); table.appendChild(row1); document.body.appendChild(table); 

We can use insertRow function of table to create new row. 我们可以使用table insertRow函数来创建新行。

find the below code: 找到以下代码:

  var table = document.createElement("table");

  //to create first row
    var row = table.insertRow(0);

  // first row columns
    var col = row.insertCell(0);
    col.textContent = "name1";

    col = row.insertCell(1);
    col.textContent = "name2";

    col = row.insertCell(2);
    col.textContent = "name3";

  // for second row
    row = table.insertRow(1);

  // for second row columns 
    col = row.insertCell(0);
    col.textContent = "50";

    col = row.insertCell(1);
    col.textContent = "48";

    col = row.insertCell(2);
    col.textContent = "56";

  document.body.appendChild(table);

jsfiddle jsfiddle

If you have your data stored in an object you can do this programmatically: 如果您将数据存储在对象中,则可以通过编程方式执行此操作:

var data = {
    name1: 50,
    name2: 48,
    name3: 56,
    name4: 52,
    name5: 58,
    name6: 49
};

function buildTable(data) {

    // grab the headings from the object
    var headings = Object.keys(data);
    var cells = [], rows = [];

    // for each heading, push it and its data value into the cell array
    headings.forEach(function (heading, i) {
        var value = data[headings[i]];
        cells.push('<td>' + heading + '<br/>' + value + '</td>');

        // when we reach the end of the row, brace the cell data with
        // row tags, and clear the cells array
        if ((i + 1) % 3 === 0) {
            rows = rows.concat('<tr>' + cells.join('') + '</tr>');
            cells = [];
        }
    });

    // return the complete table html
    return '<table>' + rows.join('') + '</table>'
}

// grab the body tag and insert the table html as the first child
var body = document.querySelector('body');
body.insertAdjacentHTML('afterbegin', buildTable(data));

DEMO 演示

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM