удалить 10 последних элементов с помощью jQuery - PullRequest
1 голос
/ 13 октября 2011

Я пытаюсь запрограммировать что-то вроде недавнего обновления в Facebook, поэтому я программирую следующий код с помощью jQuery и JavaScript

<script type="text/javascript">
var time ='<?php echo (time()); ?>';
time = 0;// remove later
var counter = 0;
var profile_url = '<?php echo (base_url()); ?>index.php/profile/';
var base_get_update_url = '<?php echo (base_url()); ?>index.php/pro_ajax/last_update/';
function get_update()
{
    var get_update_url = base_get_update_url + time;
    $.getJSON(get_update_url,function(data){
      var count_result = data[0].length + data[1].length + data[2].length + data[3].length;

       var update =  $("#UpDate").children();
        if ((update.length != 0) && (update.length + count_result) >= 15)
       {

           for (var i = 0;i < (update.length + count_result) && i < update.length;i++)
               {
                   update =  $("#UpDate").children();
                   update.last().remove();
               }
       }

      for (var i = 0;i < data[0].length;i++)
          {
              $("#UpDate").prepend('<li><a href="'+profile_url+data[0][i][1]+'">'+data[0][i][0]+'<hr /></a></li>');
          }

      for (var i = 0;i < data[1].length;i++)
          {
              $("#UpDate").prepend('<li><a href="'+profile_url+data[1][i][1]+'">'+data[1][i][0]+'<hr /></a></li>');
          }
      for (var i = 0;i < data[2].length;i++)
          {
              $("#UpDate").prepend('<li><a href="'+profile_url+data[2][i][1]+'">'+data[2][i][0]+'<hr /></li>');
          }
      for (var i = 0;i < data[3].length;i++)
          {
              $("#UpDate").prepend('<li><a href="'+profile_url+data[3][i][1]+'">'+data[3][i][0]+'<hr /></a></li>');
          }

    });
}
setInterval("get_update()", 5000);

, он получит последнее обновление и успешно их покажетно это не может удалить ребенка.Я пытаюсь сделать, если новый элемент + перед элементом больше 15, он должен удалить часть первого элемента. Но он не может это сделать. Почему?(следующий код покажет часть UpDate):

<td style="width: 200px;text-align: left;border: 2px solid white" id="UpDate"></td>

1 Ответ

6 голосов
/ 13 октября 2011

Удаление элементов может быть реализовано намного проще.Попробуйте использовать метод .slice() , который позволяет выбрать подмножество выбранных элементов, чтобы можно было удалить некоторые дочерние элементы элемента #UpDate следующим вызовом:

$('#UpDate').children().slice(0, n).remove();

(n - это количество дочерних элементов, которые вы хотите удалить)

В качестве примечания вы, похоже, добавляете элементы <li> к элементу <td>, который не является допустимым HTML.

...