Сортировка элементов на странице.
Здравствуйте.
Есть таблица такого вида:
<body>
<table>
<tr>
<td>
<section class="thumb-block">
<div>Block <sup class="count">7</sup></div>
<p>кучка какого то текста</p>
</section>
</td>
</tr>
<tr>
<td>
<section class="thumb-block">
<div>Block <sup class="count">3</sup> </div>
<p>вторая кучка какого то текста</p>
</section>
</td>
</tr>
<tr>
<td>
<section class="thumb-block">
<div>Block <sup class="count">9</sup> </div>
<p>третья кучка какого то текста</p>
</section>
</td>
</tr>
</table>
<button onclick="chg()">Click</button>
</body>
Я хочу, чтобы по нажатию на кнопку брались данные из "count", сортировались, а потом блоки "thumb-block" на странице упорядочивались по убыванию, но увы, знаний мне катастрофически не хватает. Я уверен, что нужно использовать appendChild, innerHTML и sort, но как правильно применить их я придумать не смог. Все на что меня хватило это:
function chg(){
var num = document.querySelectorAll(".count");
var block = document.querySelectorAll(".thumb-block");
for(i=0;i<num.length;i++){
console.log(parseInt(num[i].innerText));
}
}
К своему стыду я даже не смог правильно применить sort и он все время выдает ошибку. Прошу помощи. |
сортировка блоков в таблице
Fortun,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script>
function chg() {
var thumb = document.querySelectorAll(".thumb-block");
thumb = [].slice.call(thumb, 0);
var parent = thumb.map(function(el) {
return el.parentNode
});
thumb.sort(function(a, b) {
return b.querySelector(".count").textContent - a.querySelector(".count").textContent
}).forEach(function(el, i) {
parent[i].appendChild(el)
})
};
</script>
</head>
<body>
<table>
<tr>
<td>
<section class="thumb-block">
<div>Block <sup class="count">7</sup></div>
<p>кучка какого то текста</p>
</section>
</td>
</tr>
<tr>
<td>
<section class="thumb-block">
<div>Block <sup class="count">3</sup> </div>
<p>вторая кучка какого то текста</p>
</section>
</td>
</tr>
<tr>
<td>
<section class="thumb-block">
<div>Block <sup class="count">9</sup> </div>
<p>третья кучка какого то текста</p>
</section>
</td>
</tr>
</table>
<button onclick="chg()">Click</button>
</body>
</html>
|
Огромное спасибо!
|
| Часовой пояс GMT +3, время: 07:42. |