0

我无法data从我的 ajax 请求中获取出现在里面<div class="l_p_i_c_w"></div>。我究竟做错了什么?我知道里面的函数my_file.php是有效的,因为如果我刷新页面,那么数据就会显示在它应该出现的地方。

jQuery:

$.ajax({
        type: "POST",
        url: "my_file.php",
        dataType: 'html',
        success: function(data){
            $('div#myID div.l_p_c div.l_p_i_c_w').prepend(data);
        }
});

HTML:

<div class="l_p_w" id="myID">
    <div class="l_p_c">
        <div class="l_p_i_c_w">
       <!-- stuff, or may be empty. This is where I want my ajax data placed. -->
        </div>
    </div>
</div>

CSS:

.l_p_w {
    width:740px;
    min-height:250px;
    margin:0 auto;
    position:relative;
    margin-bottom:10px;
}

.l_p_c {
    position:absolute;
    bottom:10px;
    right:10px;
    width:370px;
    top:60px;
}

.l_p_i_c_w {
    position:absolute;
    left:5px;
    top:5px;
    bottom:5px;
    right:5px;
    overflow-x:hidden;
    overflow-y:auto;
}
4

4 回答 4

1

我认为,如果您使用 prepend,则需要在附加之前将数据对象包装在 $(data) 之类的 jquery 标签中,因为 prepend 会附加子项(对象)

$.ajax({
            type: "POST",
            url: "my_file.php",
            dataType: 'html',
            success: function(data){
                $('div#myID div.l_p_c div.l_p_i_c_w').prepend($(data));
            }
    });

但是,如果您只想使用数据设置 div 的 html,请执行以下操作:

$.ajax({
        type: "POST",
        url: "my_file.php",
        dataType: 'html',
        success: function(data){
            $('div#myID div.l_p_c div.l_p_i_c_w').html(data);
        }
});

第三个选项,尝试 prependTo

http://api.jquery.com/prependTo/

$.ajax({
    type: "POST",
    url: "my_file.php",
    dataType: 'html',
    success: function(data){
        $(data).prependTo($('div#myID div.l_p_c div.l_p_i_c_w'));
    }
});

最后一次尝试:

$.ajax({
            type: "POST",
            url: "my_file.php",
            dataType: 'html',
            success: function(data){
                $('div#myID div.l_p_c div.l_p_i_c_w').html(data + $('div#myID div.l_p_c div.l_p_i_c_w').html());
            }
    });
于 2012-11-22T04:43:03.693 回答
1
 $('div#myID div.l_p_c div.l_p_i_c_w').prepend(data);

应该

 $('#myID .l_p_c .l_p_i_c_w').html(data);
于 2012-11-22T04:59:49.927 回答
0

怎么样prependTo()

$.ajax({
            type: "POST",
            url: "my_file.php",
            dataType: 'html',
            success: function(data){
                $(data).prependTo('#myID .l_p_c .l_p_i_c_w');
            }
    });

正如@rajesh 在他对您的问题的评论中提到的那样,尝试在成功中提醒数据以确保它按预期返回:

$.ajax({
            type: "POST",
            url: "my_file.php",
            dataType: 'html',
            success: function(data){
                alert(data);
            }
    });
于 2012-11-22T04:52:35.160 回答
0

尝试这个:

$.ajax({
        type: "POST",
        url: "my_file.php",
        dataType: 'html',
        complete: function(jqXHR, settings){
            if (jqXHR.status == 200)
               $('div#myID div.l_p_c div.l_p_i_c_w').prepend(jqXHR.responseText);
        }
});

或者

$.ajax({
        type: "POST",
        url: "my_file.php",
        dataType: 'html'
}).done(function(data) {
     $('div#myID div.l_p_c div.l_p_i_c_w').prepend(data);
});
于 2012-11-22T04:28:12.073 回答