2017-05-01 43 views
-1

有人能帮助我如何让我的id变量在全球范围内?这里有什么问题?如何让我的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); 
+0

你怎么能说你的'id'不是全球? – Roljhon

+0

chek Arun Sivan回答:) –

回答

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');这将增加灵活性和可读性。

+0

哇!谢谢它的工作,但是当我需要最大ID我得到无穷 –

+0

这里是减少数组找到最大数量尝试这个​​例子.'var arr = [1,2,3]; var max = arr.reduce(function(a,b){Math.max(a,b); }); –

0

假设代码是在脚本的顶层,你id变量全球。但它只有它的默认值(undefined)在console.log它的位置,因为为其分配值的唯一代码位于GenerateTableFromJson函数中,该代码中没有任何内容会调用它。直到/除非有所调用GenerateTableFromJsonid将不具有值。


还有其他的问题,如事实,你for循环将只运行一次,因为你从内它做一个return,这将退出功能。