<table class="sort" align="center">
<thead>
<tr>
<td>ID</td>
<td>Имя</td>
<td>Фамилия</td>
<td>Сайт</td>
<td>Переключалка стилей</td>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Александр</td>
<td>Шуркаев</td>
<td><a href="http://htmlcoder.visions.ru/">htmlcoder.visions.ru</a></td>
<td>Не-а</td>
</tr>
…
<tr>
<td>33</td>
<td>Ден</td>
<td>Бенджамин</td>
<td><a href="http://hivelogic.com/">hivelogic.com</a></td>
<td>Угу</td>
</tr>
</tbody>
</table>
/* наша HTML таблица */
table.sort{
border-spacing:0.1em;
margin-bottom:1em;
margin-top:1em
}
/* ячейки таблицы */
table.sort td{
border:1px solid #CCCCCC;
padding:0.3em 1em
}
/* заголовки таблицы */
table.sort thead td{
cursor:pointer;
cursor:hand;
font-weight:bold;
text-align:center;
vertical-align:middle
}
/* заголовок отсортированного столбца */
table.sort thead td.curcol{
background-color:#999999;
color:#FFFFFF
}
<script type="text/javascript">
<!--
/*
originally written by paul sowden <paul@idontsmoke.co.uk> | http://idontsmoke.co.uk
modified and localized by alexander shurkayev <alshur@narod.ru> | http://htmlcoder.visions.ru
*/
var img_dir = "/i/"; // папка с картинками
var sort_case_sensitive = false; // вид сортировки (регистрозависимый или нет)
// ф-ция, определяющая алгоритм сортировки
function _sort(a, b) {
var a = a[0];
var b = b[0];
var _a = (a + '').replace(/,/, '.');
var _b = (b + '').replace(/,/, '.');
if (parseFloat(_a) && parseFloat(_b)) return sort_numbers(parseFloat(_a), parseFloat(_b));
else if (!sort_case_sensitive) return sort_insensitive(a, b);
else return sort_sensitive(a, b);
}
// ф-ция сортировки чисел
function sort_numbers(a, b) {
return a - b;
}
// ф-ция регистронезависимой сортировки
function sort_insensitive(a, b) {
var anew = a.toLowerCase();
var bnew = b.toLowerCase();
if (anew < bnew) return -1;
if (anew > bnew) return 1;
return 0;
}
// ф-ция регистрозависимой сортировки
function sort_sensitive(a, b) {
if (a < b) return -1;
if (a > b) return 1;
return 0;
}
// вспомогательная ф-ция, выдирающая из дочерних узлов весь текст
function getConcatenedTextContent(node) {
var _result = "";
if (node == null) {
return _result;
}
var childrens = node.childNodes;
var i = 0;
while (i < childrens.length) {
var child = childrens.item(i);
switch (child.nodeType) {
case 1: // ELEMENT_NODE
case 5: // ENTITY_REFERENCE_NODE
_result += getConcatenedTextContent(child);
break;
case 3: // TEXT_NODE
case 2: // ATTRIBUTE_NODE
case 4: // CDATA_SECTION_NODE
_result += child.nodeValue;
break;
case 6: // ENTITY_NODE
case 7: // PROCESSING_INSTRUCTION_NODE
case 8: // COMMENT_NODE
case 9: // DOCUMENT_NODE
case 10: // DOCUMENT_TYPE_NODE
case 11: // DOCUMENT_FRAGMENT_NODE
case 12: // NOTATION_NODE
// skip
break;
}
i++;
}
return _result;
}
// суть скрипта
function sort(e) {
var el = window.event ? window.event.srcElement : e.currentTarget;
while (el.tagName.toLowerCase() != "td") el = el.parentNode;
var a = new Array();
var name = el.lastChild.nodeValue;
var dad = el.parentNode;
var table = dad.parentNode.parentNode;
var up = table.up;
var node, arrow, curcol;
for (var i = 0; (node = dad.getElementsByTagName("td").item(i)); i++) {
if (node.lastChild.nodeValue == name){
curcol = i;
if (node.className == "curcol"){
arrow = node.firstChild;
table.up = Number(!up);
}else{
node.className = "curcol";
arrow = node.insertBefore(document.createElement("img"),node.firstChild);
table.up = 0;
}
arrow.src = img_dir + table.up + ".gif";
arrow.alt = "";
}else{
if (node.className == "curcol"){
node.className = "";
if (node.firstChild) node.removeChild(node.firstChild);
}
}
}
var tbody = table.getElementsByTagName("tbody").item(0);
for (var i = 0; (node = tbody.getElementsByTagName("tr").item(i)); i++) {
a[i] = new Array();
a[i][0] = getConcatenedTextContent(node.getElementsByTagName("td").item(curcol));
a[i][1] = getConcatenedTextContent(node.getElementsByTagName("td").item(1));
a[i][2] = getConcatenedTextContent(node.getElementsByTagName("td").item(0));
a[i][3] = node;
}
a.sort(_sort);
if (table.up) a.reverse();
for (var i = 0; i < a.length; i++) {
tbody.appendChild(a[i][3]);
}
}
// ф-ция инициализации всего процесса
function init(e) {
if (!document.getElementsByTagName) return;
for (var j = 0; (thead = document.getElementsByTagName("thead").item(j)); j++) {
var node;
for (var i = 0; (node = thead.getElementsByTagName("td").item(i)); i++) {
if (node.addEventListener) node.addEventListener("click", sort, false);
else if (node.attachEvent) node.attachEvent("onclick", sort);
node.title = "Нажмите на заголовок, чтобы отсортировать колонку";
}
thead.parentNode.up = 0;
if (typeof(initial_sort_id) != "undefined"){
td_for_event = thead.getElementsByTagName("td").item(initial_sort_id);
if (document.createEvent){
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", false, false, window, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, td_for_event);
td_for_event.dispatchEvent(evt);
} else if (td_for_event.fireEvent) td_for_event.fireEvent("onclick");
if (typeof(initial_sort_up) != "undefined" && initial_sort_up){
if (td_for_event.dispatchEvent) td_for_event.dispatchEvent(evt);
else if (td_for_event.fireEvent) td_for_event.fireEvent("onclick");
}
}
}
}
// запускаем ф-цию init() при возникновении события load
var root = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null;
if (root){
if (root.addEventListener) root.addEventListener("load", init, false);
else if (root.attachEvent) root.attachEvent("onload", init);
}
//-->
</script>
<script type="text/javascript">
<!--
initial_sort_id = 0;
initial_sort_up = 1;
-->
</script>
Как формируются описания (сниппеты) одному богу (Яндексу) известно.
В вашем случае, все логически правильно. Первая строка описания – это по всей видимости кусок из названия документа, а второе – искомое вхождение поискового запроса. Поисковый запрос в выдаче выделен, что еще нужно?
Если хотите чтобы в выдаче стояло первое слово (запрос), то необходимо седлать его первым в title, description, и первым на странице в тексте (h1..h3, strong) - иными словами «заточить страницу под этот запрос». Необходимость данных действий определяются из важности данного запроса. Не думаю, что номер телефона – это так важно, важнее что там есть (к примеру «Окна ПХВ»), а уж если посетитель решит связаться, то телефон найдет (если Вы его укажете).