|
|
|
| Здравствуйте.
Имеется блок с id="results":
В этот блок с помощью нижеследующей функции добавляются элементы "<h2>Заголовок<h2><p>Некий текст</p>":
function updateLog() {
$.getJSON('?ajax=1&lastsize='+lastSize + '&grep='+grep + '&invert='+invert, function(data) {
lastSize = data.size;
$.each(data.data, function(key, value) {
$("#results").append('<h2>Заголовок<h2><p>' + value + '</p>');
});
scrollToBottom();
});
}
|
С течением времени элементов в блоке с id="results" становиться очень много, и возникает необходимость самые старые из них (те, что в самом верху станицы) стирать. То есть если элементов "<h2>Заголовок<h2><p>Некий текст</p>" стало 300-та штук, то при добавлении 301-го необходимо самый первый "<h2>Заголовок<h2><p>Некий текст</p>" уничтожить.
Как такое реализовать? | |
|
|
|
|
|
|
|
для: Proton
(19.10.2012 в 12:34)
| | ну я тут накидал чего-то, принцип показать. Пока не пришли Конфёрм и ЯСА и не обхохотали, можно пользоваться:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; Charset=utf-8">
<script type=text/javascript src='jquery.js'></script>
<script type=text/javascript>
$(document).ready(function(){
var i=0;
$("#b1").click(function(){
i++;
$("#results").append("<h2>Заголовок</h2><p>Некий текст "+i+"</p>");
});
$("#b2").click(function(){
$("#results h2:first-child").remove();
$("#results p:first-child").remove();
});
})
</script>
</head>
<body>
<button id=b1>Ищо</button>
<button id=b2>Н*х</button>
<div id=results>
<h2>Заголовок</h2>
<p>Некий текст</p>
</div>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: DJ Paltus
(19.10.2012 в 13:14)
| | А можно так:
setInterval(function() {
if($('h2').lenght > 300) {
$("#results h2:first-child").remove();
$("#results p:first-child").remove();
}
}
, 1000);
|
будет каждую секунду смотреть и удалять лишнее | |
|
|
|
|
|
|
|
для: Aidaho
(19.10.2012 в 14:21)
| | Зачем крутить процесс, если есть четкое событие, когда исполняется условие? Получил новые данные, посчитал количество блоков, и если их 301, то первый кокнул. | |
|
|
|
|
|
|
|
для: DJ Paltus
(19.10.2012 в 15:22)
| | что-то не подумал ) но да, так будет удобней всего )) | |
|
|
|
|
|
|
|
для: Aidaho
(19.10.2012 в 14:21)
| | length | |
|
|
|
|
|
|
|
для: Aidaho
(19.10.2012 в 14:21)
| | Вот так работает как надо:
function updateLog() {
$.getJSON('?ajax=1&lastsize='+lastSize + '&grep='+grep + '&invert='+invert, function(data) {
lastSize = data.size;
$.each(data.data, function(key, value) {
$("#results").append( value );
if($('h2').length > 3) {
$("#results h2:first").remove();
$("#results a:first").remove();
$("#results p:first").remove();
}
});
scrollToBottom();
});
}
|
Спасибо всем, кто откликнулся показал примеры кода и натолкнул на правильные выводы. | |
|
|
|