如何在全局范围内创建我的id变量?

时间:2017-05-01 10:15:16

标签: javascript jquery

有人可以帮助我如何在全球范围内创建我的id变量?这有什么不对?

var id;

function GenerateTableFromJson(objArray) {
    var tableContent =
        '<table id="FilesTable" class="table table-striped table-bordered" cellspacing="0" width="100%">' +
        '<thead><tr>' + '<th>ID</th>' + '<th>Actions</th>' + '</tr></thead>';
    for (var i = 0; i < objArray.length; i++) {
        tableContent += '<tr>';

        tableContent += '<td>' + objArray[i].Id + '</td>';

        tableContent += "<td><a id='" + objArray[i].Id + "' href='#' style='color: orange' class='confirmEditFileLink'>" +
            "<i class='glyphicon glyphicon-pencil' title='Edit Item'></i></a>&nbsp&nbsp";
        tableContent += "<a id='" + objArray[i].Id + "' href='#' style='color: red' class='confirmDeleteFileLink'>" +
            "<i class='glyphicon glyphicon-remove' title='Delete File'></i></a>&nbsp&nbsp";
        tableContent += "<a id='" + objArray[i].Id + "' href='#' class='confirmListItemDetailsLink'>" +
            "<i class='glyphicon glyphicon-cog' title='Link to List Item'></i></a></td>";
        tableContent += '</tr>';
        var intmaxId = objArray[i].Id;
        id = intmaxId;
        //windows.id = intmaxId;
        return id;
    }
    return tableContent;
};
console.log(id);

2 个答案:

答案 0 :(得分:0)

假设代码位于脚本的顶层,则id变量 为全局。但它只有undefined它的默认值(console.log),因为唯一为其赋值的代码在GenerateTableFromJson函数中,该代码中没有任何内容调用。除非某些内容调用GenerateTableFromJson,否则id不会有值。

还有其他问题,例如您的for循环只会运行一次,因为您正在从其中执行return,这将退出该函数。< / p>

答案 1 :(得分:0)

 var id;
 var idArray=[];
 var tableContent;

 function GenerateTableFromJson(objArray){      

    tableContent = '<table id="FilesTable" class="table table-striped table-bordered" cellspacing="0" width="100%">' +
    '<thead><tr>' + '<th>ID</th>' + '<th>Actions</th>' + '</tr></thead>';

     for (var i = 0; i < objArray.length; i++) {

     tableContent += '<tr>';
     tableContent += '<td>' + objArray[i].Id + '</td>';
     tableContent += "<td><a id='" + objArray[i].Id + "' href='#' style='color: orange' class='confirmEditFileLink'>" +
        "<i class='glyphicon glyphicon-pencil' title='Edit Item'></i></a>&nbsp&nbsp";
    tableContent += "<a id='" + objArray[i].Id + "' href='#' style='color: red' class='confirmDeleteFileLink'>" +
        "<i class='glyphicon glyphicon-remove' title='Delete File'></i></a>&nbsp&nbsp";
    tableContent += "<a id='" + objArray[i].Id + "' href='#' class='confirmListItemDetailsLink'>" +
        "<i class='glyphicon glyphicon-cog' title='Link to List Item'></i></a></td>";
    tableContent += '</tr>';
    idArray.push(objArray[i].Id);

    }
    return tableContent;
}
tableContent=GenerateTableFromJson(objArray);
console.log(idArray);

在此示例代码id中,idArray和tableContent是全局定义的。在每次迭代中,您的id都将被推送到一个数组,以便您可以在完成迭代后获得整个数据。

如果您需要查找最大ID,则可以使用var max = Math.max(...arr);

我还建议您在创建元素时使用以下模式,而不是追加字符串。 var table=$("<table>");var table=document.createElement('table');这将提高灵活性和可读性。