在javascript中创建函数

在javascript中创建函数,javascript,php,Javascript,Php,我在php中有一个用于绘制树菜单的函数,我想用javascript实现同样的功能。。但是我是java脚本新手,所以我需要帮助 这是javascript中的函数 /** * Recursive Function to show the nested Menu * @param $data array of all the data in DataBase * @param $level choose the level form which the nested menu will start

我在php中有一个用于绘制树菜单的函数,我想用javascript实现同样的功能。。但是我是java脚本新手,所以我需要帮助

这是javascript中的函数

/**
* Recursive Function to show the nested Menu 
* @param $data array of all the data in DataBase
* @param $level choose the level form which the nested menu will start 
* @return nested menu in Html Form.
*/
function recursive($data, $level) {
   $r = "<ul>";
   foreach ( $data as $i ) {

       if ($i['parent'] == $level ) {
          $r = $r . "<li><a href='#' onclick = 'getId(".$i['id'].")'>" . $i['title'] . recursive( $data, $i['id'] ) . "</a></li>";
       }
   }
   $r = $r . "</ul>";
   return $r;
}
level参数从level开始,我用O来打印一棵这样的树

> shreif
       ssss
         asdddd
           asd
             sad
       asd
         dddd
           sad
             asd
              asd
 aaaa
我将该数据更改为json,如下所示:

var old_data = '<?php echo json_encode($nested); ?>';
所以我需要一个函数来处理这个问题,并像在php中一样绘制相同的嵌套菜单

这是我的尝试:

function recursive(data,level)
{
    var list = document.getElementById("mylist");
    for ( i in data )
    {
        if ( i['parent'] == level ) 
        {
           var r = item.appendChild(
            document.createTextNode(
                "<li><a href='#' onclick = 'getId(".i['id'].")'>" . i['title'] . recursive( data, i['id'] ) . "</a></li>")
            );
        }

    }
    list.appendChild(r);
}
函数递归(数据,级别)
{
var list=document.getElementById(“mylist”);
对于(数据中的i)
{
如果(i['parent']==级别)
{
var r=item.appendChild(
document.createTextNode(
“
  • ”) ); } } 表1.1子项(r); }

    是这样吗

    使用id创建您的选择列表。如下所示:

    <ul id="mylist"> </ul>
    

    把所有这些都放到一个循环中,你就有了自己的功能。

    (我们不是来做所有工作的-你需要在阅读相关文档后至少自己尝试解决这个问题。)亲爱的@Shreif a.,这个网站不是教你代码,而是帮助你编写代码。所以请先学习javaScript并尝试一些东西。如果您在代码方面有任何困难,我们将帮助您。使用链接:@adrinao谢谢。。很抱歉发布这个问题-你能看看我的编辑并告诉我这是对的吗?!看起来是对的。它需要测试才能确定。另外,调用函数recursive有点误导,因为函数中没有递归。也许可以给它起个更合适的名字:)祝你好运!
    function recursive(data,level)
    {
        var list = document.getElementById("mylist");
        for ( i in data )
        {
            if ( i['parent'] == level ) 
            {
               var r = item.appendChild(
                document.createTextNode(
                    "<li><a href='#' onclick = 'getId(".i['id'].")'>" . i['title'] . recursive( data, i['id'] ) . "</a></li>")
                );
            }
    
        }
        list.appendChild(r);
    }
    
    <ul id="mylist"> </ul>
    
    var list = document.getElementById("mylist");
    var item = document.createElement('li');
    item.appendChild(document.createTextNode("WHATEVER YOU WANT"));
    list.appendChild(item);