首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从jquery插件中的json而不是html标签中获取数据?

如何从jquery插件中的json而不是html标签中获取数据?
EN

Stack Overflow用户
提问于 2016-08-15 17:33:32
回答 1查看 54关注 0票数 0

我有一个从html元素获取数据的jquery plugin,如下所示:

代码语言:javascript
复制
<ul data-menu="main" class="menu__level">
  <li class="menu__item"><a class="menu__link" data-submenu="submenu-1" href="#">Vegetables</a></li>
  <li class="menu__item"><a class="menu__link" data-submenu="submenu-2" href="#">Fruits</a></li>
  <li class="menu__item"><a class="menu__link" data-submenu="submenu-3" href="#">Grains</a></li>
  <li class="menu__item"><a class="menu__link" data-submenu="submenu-4" href="#">Mylk &amp; Drinks</a></li>
</ul>
<!-- Submenu 1 -->
<ul data-menu="submenu-1" class="menu__level">
  <li class="menu__item"><a class="menu__link" href="#">Stalk Vegetables</a></li>
  <li class="menu__item"><a class="menu__link" href="#">Roots &amp; Seeds</a></li>
  <li class="menu__item"><a class="menu__link" href="#">Cabbages</a></li>
  <li class="menu__item"><a class="menu__link" href="#">Salad Greens</a></li>
  <li class="menu__item"><a class="menu__link" href="#">Mushrooms</a></li>
  <li class="menu__item"><a class="menu__link" data-submenu="submenu-1-1" href="#">Sale %</a></li>
</ul>
<!-- Submenu 1-1 -->
<ul data-menu="submenu-1-1" class="menu__level">
  <li class="menu__item"><a class="menu__link" href="#">Fair Trade Roots</a></li>
  <li class="menu__item"><a class="menu__link" href="#">Dried Veggies</a></li>
  <li class="menu__item"><a class="menu__link" href="#">Our Brand</a></li>
  <li class="menu__item"><a class="menu__link" href="#">Homemade</a></li>
</ul>

它通过数据菜单和数据子菜单属性来诊断父子菜单。.Now我通过不带html标记json数组获得所有数据。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-15 18:00:58

当然,您可以先使用JavaScript读取JSON,然后在插件读取它们之前将其转换为HTML标签。像这样:

代码语言:javascript
复制
<div class="data-container">
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script type="text/javascript">
    $.getJSON('src/data.json', {}, function(json, textStatus) {
        /** optional stuff to do after success */
        for (var i in json) {
            var lists = '';

            for (var j = 0; j < json[i].length; j++) {
                lists += '<li class="menu__item"><a class="menu__link" ' + (json[i][j].submenu === '' ? '' : 'data-submenu="' + json[i][j].submenu + '"') + ' href="' + json[i][j].href + '">' + json[i][j].children + '</a></li>';
            }

            $('.data-container').append('<ul data-menu="' + i + '" class="menu__level">' + lists + '</ul>');
        }
    });
</scirpt>
</div>

类名为data-container的元素应该是你的插件的容器,你可以在它解析你的元素之前插入。

您的示例的src/data.json应该如下所示:

代码语言:javascript
复制
{
    "main": [
        {
            "submenu": "submenu-1",
            "href": "#",
            "children": "Vegetables"
        },
        {
            "submenu": "submenu-2",
            "href": "#",
            "children": "Fruits"
        },
        {
            "submenu": "submenu-3",
            "href": "#",
            "children": "Grains"
        },
        {
            "submenu": "submenu-4",
            "href": "#",
            "children": "Mylk &amp; Drinks"
        }
    ],
    "submenu-1": [
        {
            "submenu": "",
            "href": "#",
            "children": "Stalk Vegetables"
        },
        {
            "submenu": "",
            "href": "#",
            "children": "Roots &amp; Seeds"
        },
        {
            "submenu": "",
            "href": "#",
            "children": "Cabbages"
        },
        {
            "submenu": "",
            "href": "#",
            "children": "Salad Greens"
        },
        {
            "submenu": "",
            "href": "#",
            "children": "Mushrooms"
        },
        {
            "submenu": "submenu-1-1",
            "href": "#",
            "children": "Sale %"
        }
    ],
    "submenu-1-1": [
        {
            "submenu": "",
            "href": "#",
            "children": "Fair Trade Roots"
        },
        {
            "submenu": "",
            "href": "#",
            "children": "Dried Veggies"
        },
        {
            "submenu": "",
            "href": "#",
            "children": "Our Brand"
        },
        {
            "submenu": "",
            "href": "#",
            "children": "Homemade"
        }
    ]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38952625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档