Javascript 如何将JS数组传输到外部脚本

Javascript 如何将JS数组传输到外部脚本,javascript,arrays,smarty,Javascript,Arrays,Smarty,如何将JS数组传输到外部脚本? 我有smarty数组{myarray}和以下代码: <li onclick='myfunction("{myarray}")'>TRANSFER</li>

如何将JS数组传输到外部脚本? 我有smarty数组{myarray}和以下代码:

<li onclick='myfunction("{myarray}")'>TRANSFER</li>
  • 函数myfunction(myarray)
    {
    var内容=“”;
    {foreach$myarray key=k item=f}
    内容+='';
    内容+=''+'{$k}+'+'+'+'{$f}+';
    内容+='';
    {/foreach}
    内容+='';
    document.getElementById(“表”).innerHTML=content;
    }
    
    但它不起作用。我不知道为什么。
    我可以传输变量,但不能传输数组。

    您可以对数组进行json\u编码

    <li onclick="myfunction({$myarray|@json_encode nofilter})">Transfer</li>
    
    并使用JS中的arguments对象

    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);
    }
    
    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);
    }
    
    函数myfunction(){
    var tableElement=document.createElement('table');
    tableElement.id='tableid';
    tableElement.className='表格数据表';
    var内容=“”;
    
    对于(var i=0;iit,您似乎正在发送一个普通字符串“{myarray}”,您是否尝试过不使用双引号而只发送{myarray}?
    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);
    }