Javascript 使用jsdom的动态表

Javascript 使用jsdom的动态表,javascript,Javascript,我正在尝试使用DOM动态填充网页上的表。我的想法是使用generateTable函数,将每个表作为参数传递,并在每个表的函数内设置开关用例。当我测试第一个表时,浏览器中没有显示任何内容 这里是JS: var language = "English"; var subtitle; window.onload = function() { generateTable("list"); subtitle = document.querySelector("#subtit

我正在尝试使用DOM动态填充网页上的表。我的想法是使用generateTable函数,将每个表作为参数传递,并在每个表的函数内设置开关用例。当我测试第一个表时,浏览器中没有显示任何内容

这里是JS:

var language = "English";
    var subtitle;
    window.onload = function() {
    generateTable("list");
    subtitle = document.querySelector("#subtitle");
    document.querySelector("#menu_21").onclick = function () { generateTable('pop1');};
    document.querySelector("#menu_22").onclick = function () { generateTable('pop2');};
    document.querySelector("#menu_31").onclick = function () { generateTable('aac1');};
    document.querySelector("#menu_32").onclick = function () { generateTable('aac2');};
    document.querySelector("#menu_41").onclick = function () { generateTable('lang1');};
    document.querySelector("#menu_42").onclick = function () { generateTable('lang2');};
    document.querySelector("#menu_43").onclick = function () { generateTable('lang3');};
    document.querySelector("#menu_44").onclick = function () { generateTable('lang4');};
    document.querySelector("#menu_45").onclick = function () { generateTable('lang5');};
    document.querySelector("#menu_46").onclick = function () { generateTable('lang6');};
    document.querySelector("#menu_47").onclick = function () { generateTable('lang7');};
    document.querySelector("#menu_48").onclick = function () { generateTable('lang8');};
}

function getTdImgElement(url,alt,height,width) {
    var cell = document.createElement("td");
    var image = document.createElement("img");
    image.setAttribute("src", url);
    image.setAttribute("alt", alt);
    if (height) image.setAttribute("height", height);
    if (width) image.setAttribute("width", width);
    cell.appendChild(image);
    return cell;
}

function getRow (i) {
    var row = document.createElement("tr");
    var imageURL = "../../flags/" + countries[i].Code.toLowerCase() + ".png";
    row.appendChild(getTdImgElement(imageURL,"",20px,20px));
    for (int j = 0;j < countries[i].length - 1;j++) {
    var cell = document.createElement("td");
    cell.appendChild(document.createTextNode(countries[i][j]));
    }
    var lastCell = document.createElement("td");
    lastCell.appendChild(document.createTextNode(countries[i].Name.language));
    cell += lastCell;
    row.appendChild(cell);
    tableBody.appendChild(row);
}

function generateTable(a) {
document.querySelector('#subtitle').innerHTML = "Hello!";
    var tableBody = document.querySelector("#tableBody");
    if (a == 'pop1') {
    document.querySelector('#subtitle').innerHTML = "Hello!";
    for (int i = 0; i < countries.length;i++) {
        getRow(i);
    }
    }
}
var language=“English”;
变量字幕;
window.onload=函数(){
可生成(“列表”);
subtitle=document.querySelector(“subtitle”);
document.querySelector(“#menu21”).onclick=function(){generateTable('pop1');};
document.querySelector(“#menu22”).onclick=function(){generateTable('pop2');};
document.querySelector(“#menu31”).onclick=function(){generateTable('aac1');};
document.querySelector(“#menu32”).onclick=function(){generateTable('aac2');};
document.querySelector(“#menu41”).onclick=function(){generateTable('lang1');};
document.querySelector(“#menu42”).onclick=function(){generateTable('lang2');};
document.querySelector(“#menu43”).onclick=function(){generateTable('lang3');};
document.querySelector(“#menu44”).onclick=function(){generateTable('lang4');};
document.querySelector(“#menu45”).onclick=function(){generateTable('lang5');};
document.querySelector(“#menu46”).onclick=function(){generateTable('lang6');};
document.querySelector(“#menu47”).onclick=function(){generateTable('lang7');};
document.querySelector(“#menu48”).onclick=function(){generateTable('lang8');};
}
函数getTdImgElement(url、alt、高度、宽度){
var cell=document.createElement(“td”);
var image=document.createElement(“img”);
setAttribute(“src”,url);
setAttribute(“alt”,alt);
if(height)image.setAttribute(“height”,height);
if(width)image.setAttribute(“width”,width);
子单元(图像);
返回单元;
}
函数getRow(i){
var行=document.createElement(“tr”);
var imageURL=“../../flags/”+国家[i].Code.toLowerCase()+“.png”;
appendChild(getTdImgElement(imageURL,“,20px,20px));
对于(int j=0;j
有很多语法错误,下面这个应该更好

var language = "English";
var subtitle;
window.onload = () => {
generateTable("list");
subtitle = document.querySelector("#subtitle");
document.querySelector("#menu_21").onclick = function() {
    generateTable('pop1');
};
document.querySelector("#menu_22").onclick = function() {
    generateTable('pop2');
};
document.querySelector("#menu_31").onclick = function() {
    generateTable('aac1');
};
document.querySelector("#menu_32").onclick = function() {
    generateTable('aac2');
};
document.querySelector("#menu_41").onclick = function() {
    generateTable('lang1');
};
document.querySelector("#menu_42").onclick = function() {
    generateTable('lang2');
};
document.querySelector("#menu_43").onclick = function() {
    generateTable('lang3');
};
document.querySelector("#menu_44").onclick = function() {
    generateTable('lang4');
};
document.querySelector("#menu_45").onclick = function() {
    generateTable('lang5');
};
document.querySelector("#menu_46").onclick = function() {
    generateTable('lang6');
};
document.querySelector("#menu_47").onclick = function() {
    generateTable('lang7');
};
document.querySelector("#menu_48").onclick = function() {
    generateTable('lang8');
};
};

function getTdImgElement(url, alt, height, width) {
var cell = document.createElement("td");
var image = document.createElement("img");
image.setAttribute("src", url);
image.setAttribute("alt", alt);
if (height) image.setAttribute("height", height);
if (width) image.setAttribute("width", width);
cell.appendChild(image);
return cell;
}

function getRow() {
var row = document.createElement("tr");
var imageURL = "../../flags/" + countries[i].Code.toLowerCase() + ".png";
row.appendChild(getTdImgElement(imageURL, "", 20, 20));
for (j = 0; j < countries[i].length - 1; j++) {
    var cell = document.createElement("td");
    cell.appendChild(document.createTextNode(countries[i][j]));
}
var lastCell = document.createElement("td");
lastCell.appendChild(document.createTextNode(countries[i].Name.language));
cell += lastCell;
row.appendChild(cell);
tableBody.appendChild(row);
}

function generateTable(a) {
document.querySelector('#subtitle').innerHTML = "Hello!";
var tableBody = document.querySelector("#tableBody");
if (a == 'pop1') {
    document.querySelector('#subtitle').innerHTML = "Hello!";
    for (i = 0; i < countries.length; i++) {
    getRow();
    }
}
}
var language=“English”;
变量字幕;
window.onload=()=>{
可生成(“列表”);
subtitle=document.querySelector(“subtitle”);
document.querySelector(“#menu21”).onclick=function(){
generateTable('pop1');
};
document.querySelector(“#menu22”).onclick=function(){
generateTable('pop2');
};
document.querySelector(“#menu31”).onclick=function(){
可生成表('aac1');
};
document.querySelector(“#menu32”).onclick=function(){
可生成表('aac2');
};
document.querySelector(“#menu41”).onclick=function(){
可生成表('lang1');
};
document.querySelector(“#menu42”).onclick=function(){
可生成('lang2');
};
document.querySelector(“#menu43”).onclick=function(){
可生成('lang3');
};
document.querySelector(“#menu44”).onclick=function(){
可生成('lang4');
};
document.querySelector(“#menu45”).onclick=function(){
可生成('lang5');
};
document.querySelector(“#menu46”).onclick=function(){
可生成('lang6');
};
document.querySelector(“#menu47”).onclick=function(){
可生成('lang7');
};
document.querySelector(“#menu48”).onclick=function(){
可生成('lang8');
};
};
函数getTdImgElement(url、alt、高度、宽度){
var cell=document.createElement(“td”);
var image=document.createElement(“img”);
setAttribute(“src”,url);
setAttribute(“alt”,alt);
if(height)image.setAttribute(“height”,height);
if(width)image.setAttribute(“width”,width);
子单元(图像);
返回单元;
}
函数getRow(){
var行=document.createElement(“tr”);
var imageURL=“../../flags/”+国家[i].Code.toLowerCase()+“.png”;
appendChild(getTdImgElement(imageURL,“,20,20));
对于(j=0;j
至少你需要将
i
传递到
getRow()
你是对的,修正了