0

当我在控制台日志中打印出来时,我可以看到该值,但是我没有看到该值被填充到 list.html 内的 html 页面中。所以我猜我需要确保元素在它之前已经加载?任何建议将不胜感激。

html:

<script type="text/html" id="searchPickPlaceTemplate">
<div class="searchPickWhere_box">
    <ul data-inset="true">                             
        <li><a data-transition="slide" id="searchPickWhere" href="list.html">{{whereSearch}}</a></li>                             
     </ul>
 </div>

​</p>

脚本:

 $('#restWhere').bind('touchstart mousedown', function (e) {                
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: WebServiceURL + "GetSuburbsWithPlacesAndCity",
                dataType: "json",
                data: "{'cityId':'" + cityId + "', 'categoryId': '" + categoryId + "'}",
                success: function (result) {
                    $("#searchPickPlace").html("");
                    $.each(result.d, function () {
                        $(document).ready(function () {
                            console.log('SubrubName asdfsd ' + this.name);
                            var test = $("#searchPickPlaceTemplate").text();
                            test = test.replace("{{whereSearch}}", this.name);
                            $("#searchPickPlace").append(searchPickRestaurnt);
                        });
                    });
                }
            });
        });
4

2 回答 2

1

第一的:

  1. 从每个块中删除 $(document).ready(function () { ,它不会与它一起工作,你也不需要它。

  2. 替换这一行: $("#searchPickPlace").append(searchPickRestaunt); 用这个 $(".searchPickPlace").append(test); 您将错误的内容附加到错误的元素。

这是您的代码的一个愚蠢示例:http: //jsfiddle.net/Gajotres/tJBGw/

所以它应该看起来像这样:

$('#restWhere').bind('touchstart mousedown', function (e) {                
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: WebServiceURL + "GetSuburbsWithPlacesAndCity",
            dataType: "json",
            data: "{'cityId':'" + cityId + "', 'categoryId': '" + categoryId + "'}",
            success: function (result) {
                $("#searchPickPlace").html("");
                $.each(result.d, function () {
                    console.log('SubrubName asdfsd ' + this.name);
                    var test = $("#searchPickPlaceTemplate").text();
                    test = test.replace("{{whereSearch}}", this.name);
                    $(".searchPickPlace").append(test);
                });
            }
        });
    });
于 2012-12-15T08:07:27.557 回答
0

始终尝试将 JavaScript 代码放在 html 正文标记之前。例如:

<body>
    your html code
    <script>
         // your js code
    </script>
</body>

或者使用 jQuery 文档准备功能。你必须只使用一次,而不是每次迭代。

谢谢

于 2012-12-15T18:23:52.927 回答