jQuery _renderItem显示项目列表?

时间:2015-12-01 07:56:11

标签: jquery jquery-autocomplete

我正在尝试使用jQuerys自动完成功能显示项目列表。这是我的成功函数代码:

success: function (data) {
        response($.map(data, function(v,i){
            parsedObjects = data['region.regions'][0]['region'];

            var item = [];
            var len = parsedObjects.length;
            for (var i = 0; i < len; i++) {
                var obj = { name: parsedObjects[i]['name'], value: parsedObjects[i]['geoCodeId'] };
                item.push(obj);
            }
            console.log(item);

            response(item);

        }));
    }

item对象具有我需要的所有名称/值对。现在,如何在自动完成输入中显示这些内容?

我的_renderItem看起来像这样:

function (ul, item) {
    return $( "<li>" )
        .attr( "data-value", item.value )
        .append( item.label )
        .appendTo( ul );
};

我是否必须使用循环或什么?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

尝试这样的事情。你的方法不是那么好。

success: function (data) {
        response($.map(data, function(v,i){
            parsedObjects = data['region.regions'][0]['region'];

            var item = [];
            var len = parsedObjects.length;
            for (var i = 0; i < i.length; i++) {
                var obj = { name: parsedObjects[i]['name'], value: parsedObjects[i]['geoCodeId'] };
                $("#list_cont").append(getElement(obj));
                item.push(obj);
            }

            console.log(item);

            response(item);

        }));
    }


    function getElement(item) {
        return $( "<li>" )
            .attr( "data-value", item.value )
            .append( item.label );          
    };

你的HTML应该有这样的东西

<ul id="list_cont" ></ul>

如果你想实现自动完成小部件,请在下面的构建功能中使用jquery。

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Autocomplete - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script>
  $(function() {
    var availableTags = [
      "ActionScript",
      "AppleScript",
      "Asp",
      "BASIC",
      "C",
      "C++",
      "Clojure",
      "COBOL",
      "ColdFusion",
      "Erlang",
      "Fortran",
      "Groovy",
      "Haskell",
      "Java",
      "JavaScript",
      "Lisp",
      "Perl",
      "PHP",
      "Python",
      "Ruby",
      "Scala",
      "Scheme"
    ];
    $( "#tags" ).autocomplete({
      source: availableTags
    });
  });
  </script>
</head>
<body>

<div class="ui-widget">
  <label for="tags">Tags: </label>
  <input id="tags">
</div>


</body>
</html>

了解更多信息请参阅this