.html()帮助不知道如何处理它

时间:2012-05-24 23:41:41

标签: javascript jquery function

...
success: function (reqCode) {
            if (reqCode['error_code'] == 1) {
                //Generiere Tabelle     
                $(".done").html( 
                    '<p class="bold center"><?php echo "Besucher ".$month_name[' + reqCode['month'] + ']." ".' + reqCode['year'] + '; ?></p>'
                    '<canvas id="cvs" width="680" height="250">[No canvas support]</canvas>'
                    '<script>'
                        'chart = new RGraph.Line("cvs", ' + reqCode['data_string'] + ');'
                        'chart.Set("chart.tooltips", ' + reqCode['labels_string'] + ');'
                        'chart.Set("chart.tooltips.effect", "expand");'
                        'chart.Set("chart.background.grid.autofit", true);'
                        'chart.Set("chart.gutter.left", 35);'
                        'chart.Set("chart.gutter.right", 5);' 
                        'chart.Set("chart.hmargin", 10);' +
                        'chart.Set("chart.tickmarks", "circle");'
                        'chart.Set("chart.labels", ' + $reqCode['labels_tooltip'] + ');'
                        'chart.Draw();'
                    '</script>'
                );      
                $('.done').fadeOut('slow'); 
                $('.done').fadeIn('slow');
            }   
}   

我不知道为什么每一条新线都需要自己的'..'。无论如何它不起作用。查看API参考但没有发现任何有用的东西:(

编辑:对于我的第二个问题:

这就是JSON的回应:

$response['error_code'] = '1'; 
    $response['data_string'] = "[" . join(", ", $data) . "]";
    $response['labels_string'] = "['" . join("', '", $labels) . "']";
    $response['labels_tooltip'] = "['" . join("', '", $data) . "']";
    $response['month'] = $month_name[$month];
    $response['year'] = $year;

    echo json_encode($response);

4 个答案:

答案 0 :(得分:2)

<script>标签似乎有问题,但是真的吗?您无需插入<script>标记。你已经在运行JavaScript;这样做:

success: function (reqCode) {
    if (reqCode['error_code'] == 1) {
        var month_name = <?php echo json_encode($month_name); ?>;
        //Generiere Tabelle     
        $(".done").html( 
            '<p class="bold center">Besucher ' + month_name[reqCode['month']] + ' ' + reqCode['year'] + '</p>'+
            '<canvas id="cvs" width="680" height="250">[No canvas support]</canvas>'
        );

        var chart = new RGraph.Line("cvs", reqCode['data_string']);
        chart.Set("chart.tooltips", reqCode['labels_string']);
        chart.Set("chart.tooltips.effect", "expand");
        chart.Set("chart.background.grid.autofit", true);
        chart.Set("chart.gutter.left", 35);
        chart.Set("chart.gutter.right", 5); 
        chart.Set("chart.hmargin", 10);
        chart.Set("chart.tickmarks", "circle");
        chart.Set("chart.labels", reqCode['labels_tooltip']);
        chart.Draw();

        $('.done').fadeOut('slow'); 
        $('.done').fadeIn('slow');
    }   
}   

我已经修复了一些语法错误,但我无法保证没有剩余。只需观察JavaScript控制台是否有错误。

答案 1 :(得分:1)

你应该有一个容器元素,上面有类,如:

<div class="done" />

此外,您可以简短:

$('.done').html('..all the html..').fadeOut('slow').fadeIn('slow');

此外,正如Vivin Paliath所说,你应该使用+

来连接html中的所有字符串
'<a>'+
'asdsad'+
'</a>'

祝你好运!

答案 2 :(得分:1)

你需要+标志


success: function (reqCode) {
            if (reqCode['error_code'] == 1) {
                //Generiere Tabelle     
                $(".done").html('<p class="bold center"></p>'+
                    '<canvas id="cvs" width="680" height="250">[No canvas support]'+
                    '<script>'+
                        'chart = new RGraph.Line("cvs", ' + reqCode['data_string'] + ');'+
                        'chart.Set("chart.tooltips", ' + reqCode['labels_string'] + ');'+
                        'chart.Set("chart.tooltips.effect", "expand");'+
                        'chart.Set("chart.background.grid.autofit", true);'+
                        'chart.Set("chart.gutter.left", 35);'+
                        'chart.Set("chart.gutter.right", 5);' +
                        'chart.Set("chart.hmargin", 10);' +
                        'chart.Set("chart.tickmarks", "circle");'+
                        'chart.Set("chart.labels", ' + $reqCode['labels_tooltip'] + ');'+
                        'chart.Draw();'+
                    ''
                );      
                $('.done').fadeOut('slow'); 
                $('.done').fadeIn('slow');
            }   
}  

答案 3 :(得分:0)

您需要将单个字符串传递给html()函数。类似的东西:

$(".done").html("<p>hello</p><p>goodbye</p>")

如果您需要组合多个字符串,则需要使用字符串连接,例如:

var combinedString = '<p>hello</p>' + '<p>goodbye</p>'