switch001,
А жеквери убрать не пробовали? |
switch001,
<html>
<head>
<style>
span{display: block}
</style>
</head>
<body>
<button id="rgDate">date</button>
<button id="rgError">error</button>
<button id="rgWarning">warning</button>
<button id="rgNotice">notice</button>
<button id="rgDebug">debug</button>
<br>
<div id="wrapper">
<span class="rgDate">date</span>
<span class="rgError">error</span>
<span class="rgWarning">warning</span>
<span class="rgNotice">notice</span>
<span class="rgDebug">debug</span>
<span class="rgDate">date</span>
<span class="rgError">error</span>
<span class="rgWarning">warning</span>
<span class="rgNotice">notice</span>
<span class="rgDebug">debug</span>
<span class="rgDate">date</span>
<span class="rgError">error</span>
<span class="rgWarning">warning</span>
<span class="rgNotice">notice</span>
<span class="rgDebug">debug</span>
</div>
<script>
s=wrapper.innerHTML
fltr=function(){
var re=new RegExp('<span class="'+this.id+'">[^>]+>', 'g')
wrapper.innerHTML=s.match(re).join("")
}
;[].forEach.call(document.querySelectorAll("button"), function(b){b.onclick=fltr})
</script>
</body>
</html>
На файле 540кб на слабой машине, скорость менее секунды |
js-js: подход конечно интересный. И, сцуко, элегантный!!! Не сразу понял как работает. (да-да, я принадлежу "поколению Jquery")
Сейчас попробую на своих данных. jscripter: вот и пытаюсь это сделать |
js-js: действительно работает быстро. В моем наборе данных отрабатывает за секунду, в то время как мой подход работает около трех секунд. Но есть минус: данные уничтожаются. Нужно стиль чтоли менять на невидимый.
|
Цитата:
|
Цитата:
<button onclick="fltr('rgDialplan');">Dialplan</button>
<script type="text/javascript" charset="utf-8">
function fltr(fld)
{
var s=document.getElementById('helper').innerHTML;
var re=new RegExp('<span class="'+fld+'">[^>]+>', 'g');
document.getElementById('helper').innerHTML=s.replace(re, "");
}
|
Цитата:
Странная у Вас "позиция". В переводе на русский: "у меня уничтожаются данные, потому что я их уничтожаю, как бы так сделать, чтобы я их перестал уничтожать?" |
Цитата:
|
Цитата:
document.getElementById('helper').innerHTML
а это не работает helper.innerHTML Цитата:
|
Цитата:
var logItems = [{
label: "debug",
text: "<span>10:05:00</span><span>some debug message</span>"
}, {
label: "error",
text: "<span>10:05:00</span><span>some error message</span>"
}]
//..
document.getElementById("wrapper").innerHTML = logItems.filter(function(item) {
return checkedLabels.indexOf(item.label) != -1;
}.map(function(item) {
return "<div class='log-item'>" + item + "</div>";
}).join();
А вообще, такие вещи делаются не вручную, а с помощью движков биндинга вроде реакта. |
| Часовой пояс GMT +3, время: 04:35. |