在非jquery函数/插件上迭代


Iterate over non jquery function/plugin

我不知道如何做到这一点,我在谷歌上搜索了stackoverflow,但什么都没有,我确实找到了迭代raty,但这并不是真正的问题。

这是我的问题。我使用ajax从php脚本中获取一个数组,该脚本查询MySQL数据库以获取结果。一切都是直接的,它返回一个数组。下面是rate.php文件。然后,我使用$.each对数组进行迭代—在div中显示—我想做的是在每次迭代中添加.raty评级系统。目前,评级系统(星号)添加在所有记录的底部/末尾,而不是每次迭代。我怎样才能做到这一点?以下是代码

在数组中返回结果的"rate.php"文件

    <?php
    require_once("../auth/config.class.php");
    require_once("../pages/request.class.php");

    $config = new Config;
    $dbh = new PDO("mysql:host=" . $config-> dbhost . ";dbname=" . $config->dbname,  $config->dbuser, $config->dbpass);
    $request = new Request($dbh, $config);
    $rateme = $request->rateCare();
        echo $_GET['callback'] . '('.json_encode($rateme).')';
        //echo json_encode($rateme);
        //  var_dump($rateme);
    ?>

显示结果的html文件rating.php

    <?php
    $page_title = "IntelyCare: Rating ";
    //$page_description = "Description of this page";
    require_once    ("../template/header.php");
    ?>
    <body>

    <div data-role="page">
    <script type="text/javascript">
    $(document).ready(function()
    {

         $.ajax({
            type: "GET",
            cache:false,
            url: "../pages/rate.php",
            dataType:'jsonp',
            success: function(data){
                    $.each(data, function()
                    {
                        $('#care').append("Date: " + this.caredate + '<br/ >');
                        $('#care').append("Care Giver: " + this.fname + "  " + this.lname );
                        $('#care').append('<br />');
                        $('#care').append('<br />');
                        $('#star').raty({
                            starType: 'i',
                            hints: ['Poor', 'Ok', 'Good', 'Very Good', 'Excellent' ]    
                            });
                    });

                                }
                });
    });                 

            </script>
    <div data-role="header" >
        <h1>IntelyCare</h1>
    </div>
    <div data-role="main" data-theme="a" class="ui-content">
        <div data-role="content">
        <h3>Rate Caregiver</h3>
            <div id="care">
            </div>
            <div id="star"></div>
        </div>
    </div>
    </div>
    </body>
    </html> 

更新的工作Javascript

    $(document).ready(function()
    {   
         $.ajax({
            type: "GET",
            cache:false,
            url: "../pages/rate.php",
            dataType:'jsonp',
            success: function(data){
                    $.each(data, function(id, obj)
                    {
                        divid= obj.id
                        para = $('<div id="'+ divid + ' ">'+'</div>');
                        $('#care').append("Date: " + obj.caredate + '<br/ >');
                        $('#care').append("Care Giver: " + obj.fname + "  " + obj.lname );
                        $('#care').append(para);
                        $('#care').append('<br />');
                        $('#care').append('<br />');                            
                        $(para).raty({
                            starType: 'i',
                            hints: ['Poor', 'Ok', 'Good', 'Very Good', 'Excellent' ]    
                            });
                      });   

                    }

                }); 
    });                 
    </script>

编辑

安德烈的评论是对的。您总是将.raty连接到#star。在#care中添加一个带有id="rate{uniqueidhere}"的div,将其附加在2个换行符之前,并将.raty附加到新添加的元素。