Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Выделение таблицы "Без заголовка" (https://javascript.ru/forum/events/41584-vydelenie-tablicy-bez-zagolovka.html)

Rialzista 20.09.2013 13:29

Выделение таблицы "Без заголовка"
 
Всем доброго дня, собственно как можно выделить содержимое таблицы без первой строки т.е. заголовка есть вот такой пример http://jsfiddle.net/Qa6TT/2/ , все ок, только выделяет с заголовком =(. Бьюсь не первый день, направьте плз или подскажите

ksa 20.09.2013 13:37

Цитата:

Сообщение от Rialzista
Бьюсь не первый день

Зачем ты так убиваешся? Ты ведъ так не убъёшся! (с) :D

Не передавай в скрипт всю таблицу... Разбей табличку как положено на "шапку" и "тело"...
В скрипт передавай только "тело"...

Rialzista 20.09.2013 13:39

А теперь самый кайф =)
Таблица строица из GridView asp.net, структура соответственно генерится браузером, не все генерят тело и шапку, как быть?

ksa 20.09.2013 13:41

Цитата:

Сообщение от Rialzista
не все генерят тело и шапку, как быть?

Не все генерят шапку одной строкой... Как тогда понять где та шапка? :D

ksa 20.09.2013 13:43

Хотя там шапочные теги есть (th которые)!

Сам тогда:
- ищи строки с шапочными ячейками
- перекидывай те строки в thead
- ну а потом работай только с tbody

Rialzista 20.09.2013 13:43

Понять просто - первая строка в таблице есть шапка =)

ksa 20.09.2013 13:45

Цитата:

Сообщение от Rialzista
первая строка в таблице есть шапка

Тогда все предельно просто!
- бери ту строку
- суй в thead
- а скрипту подсовывай tbody

Rialzista 20.09.2013 13:45

Шапочные есть, да, а если строить range со второй строки? и до конца таблицы, наверно должно сработать...

Rialzista 20.09.2013 13:48

Есче вопрос есть, про копирование в буфер. Я не спец по js, вот у IE есть прямой доступ через clipboard, а как проще всего в буфер положить с других браузеров? (костыли типо flash на страницу запихать что-то не пашут)

ksa 20.09.2013 14:01

Цитата:

Сообщение от Rialzista
а если строить range со второй строки?

Мне больше нравится мой вариант... :D

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function test() {
	var o=document.getElementById('table');
	var oh=document.createElement('thead');
	oh.appendChild(o.rows(0));
	o.insertBefore(oh,o.getElementsByTagName('tbody')[0]);
	o=o.getElementsByTagName('tbody')[0];
	selectElementContents(o);
};
function selectElementContents(el) {
    var body = document.body,
        range, sel;
    if (document.createRange && window.getSelection) {
        range = document.createRange();
        sel = window.getSelection();
        sel.removeAllRanges();
        try {
            range.selectNodeContents(el);
            sel.addRange(range);
        } catch (e) {
            range.selectNode(el);
            sel.addRange(range);
        }
    } else if (body.createTextRange) {
        range = body.createTextRange();
        range.moveToElementText(el);
        range.select();
    }
}
</script>
</head>
<body>
<body>
<table id="table">
    <tbody>
        <tr>
            <th>Heading</th>
            <th>Heading</th>
        </tr>
        <tr>
            <td>104300324384</td>
            <td>32121</td>
        </tr>
    </tbody>
</table>
<input type="button" value="select table" onclick="test();">
</body>
</body>
</html>


Часовой пояс GMT +3, время: 03:42.