通过内部jquery手风琴领域循环

时间:2012-12-06 18:13:44

标签: javascript jquery jquery-ui

有没有办法为jquery手风琴中的and语句创建一个循环,所以我可以迭代我的JSON。

下面的代码有JSON工作,所以我希望JSON中的数据能够填充我的jquery手风琴。只是不知道如何解决手风琴需要的h3和div标签。

         <html>



<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<head>

<link rel="stylesheet" href="jquery-ui-1.8.23.custom/development-bundle/themes/base/jquery.ui.all.css">
    <script src="jquery-ui-1.8.23.custom/development-bundle/jquery-1.8.0.js"></script>
    <script src="jquery-ui-1.8.23.custom/development-bundle/ui/jquery.ui.core.js"></script>
    <script src="jquery-ui-1.8.23.custom/development-bundle/ui/jquery.ui.widget.js"></script>
    <script src="jquery-ui-1.8.23.custom/development-bundle/ui/jquery.ui.mouse.js"></script>
    <script src="jquery-ui-1.8.23.custom/development-bundle/ui/jquery.ui.selectable.js"></script>
    <script src="jquery-ui-1.8.23.custom/development-bundle/ui/jquery.ui.accordion.js"></script>
    <link rel="stylesheet" href="jquery-ui-1.8.23.custom/development-bundle/demos/demos.css">
    <script type='text/javascript' src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>

<script>
    $(function() {
        $( "#accordion" ).accordion();
    });
</script><script>
    $(document).ready(function(){
            /* call the php that has the php array which is json_encoded */
            $.getJSON(ReturnPlacesJSON.php, function(data) {
                /* data will hold the php array as a javascript object */
                $.each(data, function(key, val) {
                    var latlng = new google.maps.LatLng(val.xcoord, val.ycoord);
                    var title = (val.title)?val.title:""
                    var icon = 'http://shanewmiller.com/Specials/images/beermug.png';
                    var special = val.Description;
                    var end = (val.endtime)?val.endtime:""
                    var start = (val.starttime)?val.starttime+" - ":""
                    var day = (val.day)?val.day:""
                    var html = val.name + val.address + special + day + start + end;

                    $('<h3 />').html(special).appendTo('#accordion');
                    $('<div />').html(val.name + ' ' + val.address).appendTo('#accordion');
                });
            });
        }); 

    </script>


</head>
<body>

<div id="accordion">
    </div>


</body></html>

1 个答案:

答案 0 :(得分:1)

你要做的是在手风琴div中创建h3和div $('#accordion > h3').each()$('#accordion > div').each()做的是迭代h3和已经在手风琴里面的div,它们都没有。

你实际上需要做的是遍历json - 你通过调用$.each(data, ...)来完成 - 然后为每个项目创建一个新的h3和一个包含该内容的新div。 您可以使用jQuery创建元素,如下所示:

$('<h3 />').html(special).appendTo('#accordion');
$('<div />').html(val.name + ' ' + val.address).appendTo('#accordion');

我相信其余代码必须经过微调。例如,我不确定调用accordion(),然后填充div会给你带来预期的效果。