1

我确定这是一个常见问题,但我有一个输入字段和一个按钮。每当按下按钮时,都会执行一个 ajax 调用,返回一个字符串。我知道,如果您将其附加到原始文件中的 div,该 div 将删除其中的任何字符串或数字并替换为返回的字符串。允许每个回调实时显示在屏幕上的最有效方法是什么?我尝试过,但似乎动态更改分配 ajax 回调插入到哪个 div 标记的 javascript 变量不起作用。有谁知道这段代码有什么问题或更有效的方法来编写这段代码,即使用 php 等。

<div id="part1">

<input type="text" id="text"/>

<input type="button" value="button" id="button"/>

</div>

<div id="hidden" class="2"></div>
<div id="part2"></div>
<div id="part3"></div>
<div id="part4"></div>
<div id="part5"></div>

<script type="text/javascript" >

$('#button').click(function () {

    var text = $('#text').val();    

$.post('ajaxskeleton.php', {
                red: text                   
        }, function(){
        var number = $('#hidden').attr("class");
        $('#part' + number).html(text);
        var number = number+1;                      
        var class_name = $('#hidden').attr('class')
        $('#hidden').removeClass(class_name);       
        $('#hidden').addClass(number);
            $('#text').val('');
    });


});


</script>
4

2 回答 2

1

我认为像下面这样的东西会起作用。

<div id="container">
  <input type="text" id="text"/>

  <input type="button" value="button" id="button"/>
</div>
<ol id="responses"></ol>
$("#button").click(function() {
  $.post('ajaxskeleton.php', {red:text}, function(data) {
    $("#responses").append("<li>" + data + "</li>");
  });
});

这只是建立了一个有序列表,其中包含从 Ajax 调用返回的响应,我认为这是您的目标。

于 2012-08-27T00:35:37.680 回答
1

.html()您可以将新结果附加到现有的div. 例如,假设您想将结果附加到div带有 id的 a results

$('#button').click(function () {
    var text = $('#text').val();    
    $.post('ajaxskeleton.php', { red: text }, function() {
        $("<li>" + text + "</li>").appendTo($("#results"));
    });
});​

这是一个演示

于 2012-08-27T00:33:32.727 回答