2017-05-01 56 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,這將退出功能。