jquery - 如何使用 XML 和 Jquery 创建动态菜单

标签 jquery xml

我有一个如下所示的 xml enter image description here

上面是我的 xml 文件的示例。现在我的要求是读取 xml 文件并使用 jquery 构建菜单。

有人可以帮我吗

最佳答案

你可以试试这个

XML

<?xml version="1.0" encoding="utf-8" ?>
    <MenuRoot>
        <Menu id="home" text="Home" url="home.aspx"></Menu>
        <Menu id="projects" text="Projects" url="projects.aspx">
            <SubMenu id="sub1" text="Sub One" url="subone.aspx"></SubMenu>
            <SubMenu id="sub2" text="Sub Two" url="subtwo.aspx"></SubMenu>
        </Menu>
    </MenuRoot>

HTML

<div id="menu_wrapper"></div>

JS

$(document).ready(function(){
        $.ajax({
            type: "GET",
            url: "jquery_xml.xml",
            dataType: "xml",
            success: function(xml){
                var ul_main=$("<ul />");
                $(xml).find("Menu").each(function(){
                    if($(this).children().length)
                    {
                        var ulSub=$("<ul />");
                        $(this).children().each(function(){
                            ulSub.append("<li id="+$(this).attr("id")+"><a href="+$(this).attr("url")+">"+$(this).attr("text")+"</a></li>");
                        });
                        var li=$("<li id="+$(this).attr("id")+"><a href="+$(this).attr("url")+">"+$(this).attr("text")+"</a></li>");
                        ul_main.append(li.append(ulSub))
                    }
                    else ul_main.append("<li id="+$(this).attr("id")+"><a href="+$(this).attr("url")+">"+$(this).attr("text")+"</a></li>");
                });
                $("#menu_wrapper").append(ul_main);
            }
        });
});

输出

enter image description here

您只需使用 css 设置菜单样式即可。

关于jquery - 如何使用 XML 和 Jquery 创建动态菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12313261/

相关文章:

javascript - 将 HTML <select> 元素显示到特定的 div

javascript - 如何停止jquery重复

javascript - 创建一个具有固定左右列的 HTML 表格

javascript - JavaScript 中的跨浏览器 XPath 实现

c# - Linq 查询 XML 以选择子节点的多个元素

xml - 如何创建xmlns :xsi and xsd information in an XML document

javascript - 我已经在 javascript 中获得了 ajax 响应,但现在我想提交表单并希望该 ajax 响应也在我的 POST 数组中

javascript - 绑定(bind)到 LI 的事件也由点击子元素触发

c++ - Pugixml - 解析具有前缀映射和不带前缀映射的命名空间

c# - 如何从 Xml 文件中获取逗号分隔值