【问题标题】:How to foreach after parsing json response got via ajax in jquery?解析通过jquery中的ajax获得的json响应后如何进行foreach?
【发布时间】:2018-08-06 06:19:46
【问题描述】:

我有一个数组,用于列出我想在 li 中附加的所有银行:-

HTML:
    <div id="bank_name">
    <ul>
      <li></li>
    </ul>
    </div>

我在 jsonParse 之后以这种格式获取一个数组:-

[{"bank name":"Australian Military Bank"},{"bank name":"Adelaide Bank"},{"bank name":"Advantedge"},{"bank name":"American Express"},{"bank name":"AMP"},{"bank name":"ANZ"},{"bank name":"Auswide Bank"},{"bank name":"AWA Alliance Bank"},{"bank name":"Bank of Us"},{"bank name":"Bank Australia"},{"bank name":"BankFirst"},{"bank name":"BankMeCU"},{"bank name":"BankSA"},{"bank name":"BankSA Business Banking"},{"bank name":"Bank of Sydney"},{"bank name":"BankVic "},{"bank name":"Bankwest"},{"bank name":"Bank of CAPTCHA"},{"bank name":"Bank of Custom Data"},{"bank name":"Bank of MFA"},{"bank name":"Bank of Mortgage"},{"bank name":"Bank of Optional MFA"},{"bank name":"Bank of Password"},{"bank name":"Bank of Statements"}]

我用来将其附加到 div 中的代码

jQuery:-

$.ajax({
        ...
        success: function(response) {
          var new_list = var obj = jQuery.parseJSON(response); 
          $(new).each(function(i, val ) {
             $('#bank_name li').append(val);
           });
         }
       });   

我什至尝试使用以前的答案,但它没有帮助我。

【问题讨论】:

  • var new 不要将变量命名为保留关键字...
  • 它是我在这里使用的演示名称,我在代码中的名称是 new_list。
  • @patilprashant6792 这不正确,JSON 确实可以具有包含空格的属性名称
  • 是的,我知道,因为我在后端创建了一个数组,我在其中设置了银行名称,然后在解码数组后发送它。

标签: jquery


【解决方案1】:

你的循环可以是这样的

$.each(data, function(i, item) {
        $("#bank_name ul").append("<li>"+item["bank name"]+"</li>");
});

Working Fiddle

【讨论】:

    【解决方案2】:

    您的代码中存在一些问题:

    1. 您不能使用new,因为它是 JavaScript 中的保留关键字
    2. 您需要在&lt;ul&gt; 标记中附加HTML 列表,该列表具有bank name 属性值的&lt;li&gt; 标记列表

    var _new = [{"bank name":"Australian Military Bank"},{"bank name":"Adelaide Bank"},{"bank name":"Advantedge"},{"bank name":"American Express"},{"bank name":"AMP"},{"bank name":"ANZ"},{"bank name":"Auswide Bank"},{"bank name":"AWA Alliance Bank"},{"bank name":"Bank of Us"},{"bank name":"Bank Australia"},{"bank name":"BankFirst"},{"bank name":"BankMeCU"},{"bank name":"BankSA"},{"bank name":"BankSA Business Banking"},{"bank name":"Bank of Sydney"},{"bank name":"BankVic "},{"bank name":"Bankwest"},{"bank name":"Bank of CAPTCHA"},{"bank name":"Bank of Custom Data"},{"bank name":"Bank of MFA"},{"bank name":"Bank of Mortgage"},{"bank name":"Bank of Optional MFA"},{"bank name":"Bank of Password"},{"bank name":"Bank of Statements"}]
    var nHTML = '';
    $(_new).each(function(i, val ) {
     nHTML += '<li>'+val['bank name']+'</li>'
    });
    $('#bank_name').html('<ul>'+nHTML+'</ul>');
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="bank_name">
    </div>

    【讨论】:

      【解决方案3】:

      您可以像这样对 JSON 响应使用 eval 函数。

      var data = eval(response);
      

      您将能够访问 ajax 响应中的所有值。

      另外,我更喜欢在将所有值分配给变量后附加值,像这样。

       var html = ''; 
       $.each(data, function(i, item) {
         html += "<li>"+data.bank name+"</li>";
      });
       $("#bank_name").append(html);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-22
        相关资源
        最近更新 更多