0

我有一个 jquery 脚本,它访问一个数据库并返回一个数字结果并将该结果写入一个表格单元格。该脚本在页面加载时运行,并且在下拉菜单更改时运行。我希望每个表格单元格只能限制 1 个结果。

现在,当页面加载时,它将结果写入单元格,当下拉菜单更改时,它只是将新结果添加到单元格而不是替换它。

我进行了相当多的搜索,试图弄清楚如何做到这一点,但无法提出任何建议。有人能帮我吗?

这是jQuery:

$(document).ready(function(){

$('.typeval').change(function(){
    var movement    =  $(this).val();
    var client_id   = $(this).parent().siblings().find('.clientval').val();
    var class_id    = <? echo $class_id; ?>;
        $count      = $(this).parents('tr').find('label.count');

$.ajax({ 
  type: "POST",
  url: "movement_count.php",
  data: {movement:movement, client_id:client_id, class_id:class_id},
  dataType: "json", 
  async: false,
  success:(function(output) {      

      $.each(output, function(index, value){
     //alert(value);
     $count.append(output[index]);
     }); // each
     })     
}) // ajax

}).change(); // .typeval

});  // document

这是表格单元格,我一次只想显示一个结果。

<td><label class="count">5</label></td>

如果我没有提供足够的信息来获得所需的帮助,请告诉我。

4

2 回答 2

2

使用.text()代替.append()

$count.text(output[index]);

顾名思义,.append()就是将内容添加到容器的末尾。然而,.text()设置容器中显示的文本,覆盖任何现有文本。

实际上,.html(), 的行为更像.append().text(),但我不建议使用.html(),除非您实际设置.html(). 既然你说结果是数字的,.text()那就更好了。

于 2012-10-22T21:19:50.320 回答
0

在添加新结果之前尝试更新您的 AJAX 调用以清除内容:

$.ajax({ 
    type: "POST",
    url: "movement_count.php",
    data: {movement:movement, client_id:client_id, class_id:class_id},
    dataType: "json", 
    async: false,
    success:(function(output) {      

        $.each(output, function(index, value){
            //alert(value);

            $count.html(''); // Clear current content

            $count.append(output[index]); // Append new content

        }); // each
     })     

}) // ajax

于 2012-10-22T21:19:48.193 回答