javascript - 如何在我的 javascript 生成列表的 <li> 部分中放置更多超链接

标签 javascript jquery html-lists

我有一个创建列表的 JavaScript。一切正常,请参阅我的 fiddle :http://jsfiddle.net/mauricederegt/mjdyW/4/

现在这个脚本产生:

<div id="container">
  <ul>
    <li>
      <a href="/best-known-for">Link1</a>
    </li>
  </ul>
  <ul>
    <li>
      <a href="/life-events">Link1</a>
    </li>
  </ul>
</div>

如您所见,<li> 中只有 1 个超链接。部分。我想在<li>中添加更多超链接部分因此脚本生成如下列表:

<div id="container">
  <ul>
    <li>
      <a href="/best-known-for">Link1</a>
      <a href="/best-antoher">Some oher link</a>
      <a href="/best-antoher2">Another oher link</a>
    </li>
  </ul>
  <ul>
    <li>
      <a href="/life-events">Link1</a>
      <a href="/life-events2">Link2</a>
    </li>
  </ul>
</div>

如何编辑我的 JavaScript,以便它可以从脚本中读取/创建更多超链接?

另外,我还想补充一下<li>在一个<ul> ,也有点陷入这个困境。我的最终目标必须看起来像这样:

<div id="container">
  <ul>
    <li>
      <a href="/best-known-for">Link1</a>
      <a href="/best-antoher">Some oher link</a>
      <a href="/best-antoher2">Another oher link</a>
    </li>
    <li>
      <a href="/best-known-for2">Link2</a>
      <a href="/best-antoher2">Some oher link2</a>
      <a href="/best-antoher22">Another oher link2</a>
    </li>
  </ul>
  <ul>
    <li>
      <a href="/life-events">Link1</a>
      <a href="/life-events2">Link2</a>
    </li>
  </ul>
</div>

亲切的问候

最佳答案

var Menu = function(data) {
    this.data = data;
};

Menu.prototype.render = function() {
    //console.log(this.data)
    var ul = $("<ul />");
    $.each(this.data, function(i, e) {
        var li = $("<li />");
        $.each(e, function(j, f) {
            li.append($("<a></a>", {
                href: f.url,
                text: f.title
            }));
        });
        ul.append(li);
    });
    return ul;
};

Menu.renderMenus = function(menus, root) {
    $.each(menus, function(key, val) {
        var m = new Menu(val),
            ul = m.render();
        ul.appendTo(root);
    });
}

var menu = 
[
    [//first ul
        [ //first li 
            { //first <a> element
                title: "First UL, First li, First a",
                menuCaption: "Best Known For Caption",
                url: "/best-known-for"
            },
            { //second <a> element
                title: "First UL, First li, Second a",
                menuCaption: "Best Known For Caption",
                url: "/best-known-for"
            }
        ],
        [ //second li 
            { //only <a> element
                title: "First UL, Second li, First a (not first-child, and not red)",
                menuCaption: "Choose a life Event",
                url: "/life-events"
            }
        ]
    ],
    [//second ul
        [ //first li in second ul
            { //only <a> element
                title: "Second UL, First li, First a",
                menuCaption: "Hello Kitty",
                url: "/google"
            },
            { //second <a> element
                title: "Second UL, First li, Second a",
                menuCaption: "Best Known For Caption",
                url: "/best-known-for"
            }
        ]
    ] //you can add as many <li> or <a> elements you wish by following the 
      //pattern in this object literal
];


Menu.renderMenus(menu, $("#container"));​

FIDDLE

关于javascript - 如何在我的 javascript 生成列表的 <li> 部分中放置更多超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11996476/

相关文章:

javascript - 如何让popup垂直上下展开

javascript - jQuery 的 mouseout() 和 mouseleave() 有什么区别?

html - 带有 "display: table"子元素的 Microsoft Edge 上奇怪的 <li> 高度错误

javascript - 动态添加输入字段,但字段由外部 PHP 函数生成

javascript - Worklight - 打开 native 应用程序

javascript - 将 HTML 转换为 Javascript 字符串

css - 在一个 ul 中均匀分布 li 的中心中间 li

javascript - 如何进行拖放操作?

javascript - Highcharts:如何使工具提示位置在视口(viewport)中可见

php - 我的标题菜单存在 IE 布局问题,它在所有其他浏览器中运行良好