有人可以帮助我如何在全球范围内创建我的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>  ";
tableContent += "<a id='" + objArray[i].Id + "' href='#' style='color: red' class='confirmDeleteFileLink'>" +
"<i class='glyphicon glyphicon-remove' title='Delete File'></i></a>  ";
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 :(得分: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>  ";
tableContent += "<a id='" + objArray[i].Id + "' href='#' style='color: red' class='confirmDeleteFileLink'>" +
"<i class='glyphicon glyphicon-remove' title='Delete File'></i></a>  ";
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');
这将提高灵活性和可读性。