【问题标题】:Appending values with nested json objects使用嵌套的 json 对象附加值
【发布时间】:2018-07-16 23:14:31
【问题描述】:

我需要从包含州和城市地址的 JSON 对象创建一个列表。

JSON 对象如下所示:

atm = {estados": [
    {
        "txNome": "TOCANTINS",
        "listaCidades": [
            {
                "txNome": "PALMAS",
                "listaEnderecos": [
                    "AVENIDA JUSCELINO KUBITSCHEK. <br> Número: 0. <br> Bairro: PLANO DIRETOR NORTE. <br> CEP: 77.001-080.",
                    "AV 107 NORTE AVEN JUSCELINO KUBITSCHEK. <br> Bairro: PLANO DIRETOR NORTE. <br> CEP: 77.001-080."
                ]
            }
        ]
    },
    {
        "txNome": "MARANHAO",
        "listaCidades": [
            {
                "txNome": "SANTA INES",
                "listaEnderecos": [
                    "AVENIDA CASTELO BRANCO. <br> Número: 2790. <br> Bairro: LARANJEIRAS. <br> CEP: 65.300-000.",
                    "ROD BR 316 KM 258. <br> Número: 32. <br> Bairro: CANAA. <br> CEP: 65.300-000.",
                    "AV CASTELO BRANCO. <br> Número: 2790. <br> Bairro: LARANJEIRAS. <br> CEP: 65.300-000."
                ]
            }

按照这个JSFiddle我做了这个

var atms = <?php echo $scriptListaAtm ?>;

    ul = $('<div class="container">');


    for (var i = 0; i < atms.estados.length; i++) {

        var li = $('<h1>').text(atms.estados[i].txNome);

        var ul_cidade = $('<div class="col-md-4 botmargin">');

        for (var j = 0; j < atms.estados[i].listaCidades.length; j++) {

            var cidade = $('<h4>').text(atms.estados[i].listaCidades[j].txNome);
            var ul_endereco = $('<div>');

            for (var k = 0; k < atms.estados[i].listaCidades[j].listaEnderecos.length; k++) {
                $('<p>'+atms.estados[i].listaCidades[j].listaEnderecos[k]).appendTo(ul_endereco);
            }

            cidade.append(ul_endereco);
            ul_cidade.append(cidade);

        }

        li.after(ul_cidade);  
        li.appendTo(ul);

    }       
    ul.appendTo(locaisatendimento);

使用li.after(ul_cidade) 不起作用,我只能得到州名,但如果我使用li.append(ul_cidade) 它确实有效,但我得到了错误的结构。

谁能告诉我我做错了什么?

【问题讨论】:

  • atm = [estados": [ - 从那里开始,这是无效的。我猜你的意思是:atm = {estados": [
  • 是的,很抱歉

标签: jquery json for-loop append


【解决方案1】:

这是因为li 是您创建的节点而不是选择器,after 根据其描述:

说明:在匹配元素集中的每个元素之后插入由参数指定的内容。

所以没有任何元素。而是 li.append(ul_cidade) 追加内容。

【讨论】:

  • 但是我该如何解决呢?我只想得到正确的结构。
  • @AlexanderSoares 你有什么问题?你用append函数写的,它工作,你为什么不使用那个函数?
  • 因为如果我使用 append 它会将 Cities 放在 States div 中,而不是在每个 state div 之后添加
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
  • 2017-11-17
  • 2015-09-11
  • 1970-01-01
  • 2019-07-02
  • 2022-08-18
相关资源
最近更新 更多