首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用$.getJSON从数组中检索数据?

如何使用$.getJSON从数组中检索数据?
EN

Stack Overflow用户
提问于 2018-03-30 04:14:54
回答 1查看 98关注 0票数 1

我有一个小的网络应用程序,我需要填充一个下拉列表后,选择另一个权利之前。

例如,这是Ajax请求http://localhost:8080/ajax/dropdown_model?brandId=0的URL,JSON代码如下所示:

代码语言:javascript
运行
复制
[{"id":0,"name":"Z-400","brand":{"id":0,"name":"Lenovo"}}]

我使用的代码是这样的:

代码语言:javascript
运行
复制
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
     <script type="text/javascript">
     var html = '';
     $('select#brand').change(
        function() {
            $.getJSON("http://localhost:8080/ajax/dropdown_model", {
                brandId : $(this).val(),
                ajax : 'true'
            }, function(data) {
                html = '<option disabled="disabled" value="">Seleccionar modelo:</option>';
                var len = data.length;
                for ( var i = 0; i < len; i++) {
                    html += '<option value="' + data[i].id + '">'
                           data[i].id + ' : ' + data[i].name + '</option>';
                }
                html += '</option>';
                $('select#model').html(html);
            });
        }); </script>

它应该替换第二个select标记的内容,并在其中添加JSON字符串的内容。这也是表单的相关部分(我使用Spring和Thymeleaf):

代码语言:javascript
运行
复制
<div class="brand" th:object="${lbra}">
           <select name="brand" id="brand" >
        <option value="">Seleccionar marca:</option>
        <option th:each="brand : ${lbra}"
                th:value="${brand.getId()}"
                th:text="${brand.getId()}+' : '+${brand.getName()}"></option>
    </select>   </div>

      <div class="model" id="modellist">
           <select name="model" id="model">
        <option value="" disabled="disabled" selected="selected">Seleccionar modelo:</option>
        <option></option>
    </select>   </div>
EN

回答 1

Stack Overflow用户

发布于 2018-03-30 04:48:06

为了创建一个示例,我删除了一些Spring变量。您在添加到HTML字符串的动态选项后缺少"+“(在html += '<option value="' + data[i].id + '">'之后)。

代码语言:javascript
运行
复制
var html = '';
$('select#brand').change(
  function() {
    $.getJSON("https://api.myjson.com/bins/ugf4v", {
      brandId: $(this).val(),
      ajax: 'true'
    }, function(data) {
      html = '<option disabled="disabled" value="">Seleccionar modelo:</option>';
      var len = data.length;         
      for (var i = 0; i < len; i++) {
        html += '<option value="' + data[i].id + '">' +
          data[i].id + ' : ' + data[i].name + '</option>';
      }
      html += '</option>';
      $('select#model').html(html);
    });
  });
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="brand">
  <select name="brand" id="brand">
        <option value="">Seleccionar marca:</option>
        <option>Test Change</option>
   </select>
</div>

<div class="model" id="modellist">
  <select name="model" id="model">
        <option value="" disabled="disabled" selected="selected">Seleccionar modelo:</option>
        <option></option>
    </select>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49564319

复制
相关文章

相似问题

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