![](/img/trans.png)
[英]How (in Razor) to transfer data from c # array to script (JS) array?
[英]How to transfer JS array to external script
如何将JS数组传输到外部脚本? 我有聪明的数组{myarray}和这段代码:
<li onclick='myfunction("{myarray}")'>TRANSFER</li>
externalscript.js看起来:
function myfunction(myarray)
{
var content = '<table class="table-data-sheet" id="table">';
{foreach $myarray key=k item=f}
content +='<tr>';
content += '<td>' + "{$k}" + '</td>' + '<td>' + "{$f}" + '</td>';
content += '</tr>';
{/foreach}
content += '</table>';
document.getElementById("table").innerHTML = content;
}
但是它不起作用。 我不知道为什么 我可以传递变量,但不能传递数组。
你可以json_encode数组
<li onclick="myfunction({$myarray|@json_encode nofilter})">Transfer</li>
并将其用作JS中的对象
function myfunction(myObj) {
var tableElement = document.createElement('table');
tableElement.id = 'tableid';
tableElement.className = 'table-data-sheet';
var content = '';
var valueKeys = Object.keys(myObj);
for(var i=0;i<valueKeys.length;i++){
content +='<tr><td>'+valueKeys[i]+'</td><td>'+myObj[valueKeys[i]]+'</td></tr>';
}
tableElement.innerHTML = content;
document.getElementById("tabledivid").appendChild(tableElement);
}
如果您将有一个值数组而不是一个键值构造,则可以这样做
implode(', ', $fruit)
并在JS中使用arguments对象
function myfunction() {
var tableElement = document.createElement('table');
tableElement.id = 'tableid';
tableElement.className = 'table-data-sheet';
var content = '';
for(var i=0;i<arguments.length;i++){
content +='<tr><td>'+i+'</td><td>'+arguments[i]+'</td></tr>';
}
tableElement.innerHTML = content;
document.getElementById("tabledivid").appendChild(tableElement);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.