группировка одинаковых ячеек таблицы
есть таблица, в которой могут быть различные элементы
<table id="stuff"> <tr> <td> Ель </td> </tr> <tr> <td> Дуб </td> </tr> <tr> <td> Клен </td> </tr> <tr> <td> Дуб </td> </tr> <tr> <td> Ель </td> </tr> </table> нужно сделать группировку повторяющихся элементов тоесть результат должен быть примерно таким: Ель: 5 Дуб: 2 Клен: 1 |
неужели невозможно?
|
Vampir3, а обойти все ячейки не судьба?
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <table id="stuff"> <tr> <td>Ель</td> </tr> <tr> <td>Дуб</td> </tr> <tr> <td>Клен</td> </tr> <tr> <td>Дуб</td> </tr> <tr> <td>Ель</td> </tr> </table><script> var a = document.getElementById("stuff").getElementsByTagName("td"); obj = {}; for (var b = 0; b < a.length; b++) { var c = a[b].firstChild.data; obj[c] ? obj[c]++ : obj[c] = 1 } for (var d in obj) document.write(d + " " + obj[d] + "<br />"); </script> </body> </html> |
var str = '<table id="stuff">\ <tr>\ <td>\ Ель\ </td>\ </tr>\ <tr>\ <td>\ Дуб\ </td>\ </tr>\ <tr>\ <td>\ Клен\ </td>\ </tr>\ <tr>\ <td>\ Дуб\ </td>\ </tr>\ <tr>\ <td>\ Ель\ </td>\ </tr>\ </table>'; var arr =str.split(/<[^>]*>/gim).join(',').split(/(\s*,)+/gim).join(',').split(/,+/) arr.splice(0,1);arr.pop(); var obj={}; for(var i=0;i<arr.length;i++){ if(!obj[arr[i]])obj[arr[i]]=0; obj[arr[i]]++; } arr = [],j=0; for(var i in obj){ arr[j] = i+':'+obj[i]; j++; } alert(arr.join('\n')) :) |
ухх.. спасибо)
|
Часовой пояс GMT +3, время: 18:22. |