группировка одинаковых ячеек таблицы
есть таблица, в которой могут быть различные элементы
<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, время: 03:25. |