Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/34: Рейтинг темы: голосов - 34, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 4
1

Поиск строк в таблице по символам

14.10.2015, 19:54. Показов 6175. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сделал страницу с таблицей, и в этой таблице хочу сделать поиск по строкам. И каждая строка с вхождением в ячейке должна перемещаться и выводиться выше остальных. Заголовок таблицы не участвует в поиске, т.е. он всегда выводиться первым. Хотелось бы, чтобы использовался JS. Помогите, хоть с чего начать.
Собственно, код:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<!DOCTYPE html>
<html>
<head>
  <title>Тестовое задание. Страница №2.</title>
  <link rel="stylesheet" href="style.css" type="text/css">
</head>
 <body>
  <div id="header"><h1>Произвольный заголовок второй страницы</h1></div>
  <div id="sidebar">
    <h3>Навигация</h3>
    <p><a href="page1.html">Страница №1</a></p>
    <h3>Поиск в таблице</h3>
    <form><p><input type="search" size="10"><input type="submit" value="Искать"></p></form>
  </div>
  <div id="content">
    <table width="100%" border="1" cellpadding="5" style="border-collapse: collapse; margin: 5px;"> 
      <tr style="background-color: silver">
        <th>Номер строки</th>
        <th>Наименование</th>
        <th>Описание</th>
        <th>Дата</th>
        <th>Количество</th>
        <th>Статус</th>
      </tr>
      <tr>
        <td> Ячейка 1 </td>
        <td> Ячейка 2 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
      </tr>
      <tr>
        <td> Ячейка 1 </td>
        <td> Ячейка 2 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
      </tr>
      <tr>
        <td> Ячейка 1 </td>
        <td> Ячейка 2 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
      </tr>
      <tr>
        <td> Ячейка 1 </td>
        <td> Ячейка 2 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
      </tr>
      <tr>
        <td> Ячейка 1 </td>
        <td> Ячейка 2 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
      </tr>
    </table>
  </div>
 </body>
</html>
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2015, 19:54
Ответы с готовыми решениями:

Как реализовать поиск в таблице по первым символам???
Кто подскажет где можно посмотреть пример или как вообще реализовать это. То есть на форме есть...

Поиск строк по символам в Memo
Доброго времени суток. Задача заключаеться в том чтобы найти строки в memo по символам введеным в...

Поиск строк в таблице из списка
Здравствуйте. Помогите сформировать запрос. Есть список строк IEnumerable&lt;string&gt; ListPseudoName ...

Поиск по строке в таблице MySQL с выводом строк в браузер
поиск по строке в таблице MySQL с выводом строк в браузер!:) что имею! index.php &lt;html&gt;...

7
Эксперт HTML/CSS
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
14.10.2015, 20:59 2
Лучший ответ Сообщение было отмечено Fedor92 как решение

Решение

Находит первое вхождение:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<table id="tbl" width="100%" border="1" cellpadding="5" style="border-collapse: collapse; margin: 5px;"> 
      <tr style="background-color: silver">
        <th>Номер строки</th>
        <th>Наименование</th>
        <th>Описание</th>
        <th>Дата</th>
        <th>Количество</th>
        <th>Статус</th>
      </tr>
      <tr>
        <td> Ячейка 1 </td>
        <td> Ячейка 2 </td>
        <td> что-то </td>
        <td> Ячейка 4 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 3 </td>
      </tr>
      <tr>
        <td> Ячейка 1 </td>
        <td> Ячейка 2 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 2 </td>
      </tr>
      <tr>
        <td> Ячейка 1 </td>
        <td> Ячейка 2 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
        <td> Ячейка 3 </td>
        <td> 77 </td>
      </tr>
      <tr>
        <td> Ячейка 1 </td>
        <td> Ячейка 2 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 77 </td>
      </tr>
      <tr>
        <td> ololo </td>
        <td> Ячейка 2 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
        <td> Ячейка 3 </td>
        <td> Ячейка 4 </td>
      </tr>
    </table> 
<input id='srch' type="text"><button id="btn">Search</button>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function search(searchWord){
    var reg = new RegExp(searchWord, "g");
    for(var i = 1, l = tbl.rows.length; i < l; i++){
        for(var j = 0, l1 = tbl.rows[i].cells.length; j < l1; j++){
            if(tbl.rows[i].cells[j].innerHTML.indexOf(searchWord) +1){
                var clone = tbl.rows[i].cloneNode(true);
                tbl.rows[i].parentNode.removeChild(tbl.rows[i]);
                tbl.rows[1].parentNode.insertBefore(clone, tbl.rows[1]);
                return true;
            }
        }
    }
}
 
btn.onclick = function(){
    search(srch.value)
}

jsfiddle
2
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 4
14.10.2015, 22:47  [ТС] 3
Спасибо большое!
0
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 2
29.07.2016, 13:21 4
Shakalaka, Преф Я использовал твой код для своего сайта и столкнулся с проблемой: он чуствителен к регистру. Можно ли это исправить?
0
Эксперт HTML/CSS
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
29.07.2016, 14:18 5
Цитата Сообщение от Chester27 Посмотреть сообщение
он чуствителен к регистру. Можно ли это исправить?
заменить это
Javascript
1
var reg = new RegExp(searchWord, "g");
на это
Javascript
1
var reg = new RegExp(searchWord, "gi");
1
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 2
30.07.2016, 09:49 6
Shakalaka, всё равно не пашет. Например когда я ввожу "Втулка" он поднимает строчку а когда ввожу "втулка" ничего не происходит
0
Эксперт HTML/CSS
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
30.07.2016, 12:57 7
Цитата Сообщение от Chester27 Посмотреть сообщение
всё равно не пашет.
Не посмотрел что там написано
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function search(searchWord){
    var reg = new RegExp(searchWord, "gi");
    for(var i = 1, l = tbl.rows.length; i < l; i++){
        for(var j = 0, l1 = tbl.rows[i].cells.length; j < l1; j++){
            if(reg.test(tbl.rows[i].cells[j].innerHTML)){
                var clone = tbl.rows[i].cloneNode(true);
                tbl.rows[i].parentNode.removeChild(tbl.rows[i]);
                tbl.rows[1].parentNode.insertBefore(clone, tbl.rows[1]);
                return true;
            }
        }
    }
}
 
btn.onclick = function(){
    search(srch.value)
}
0
0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 1
22.12.2016, 04:02 8
Если я правильно понимаю, скрипт выводит только первое значение из таблицы, а как вывести несколько ячеек с одинаковыми данными?
0
22.12.2016, 04:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2016, 04:02
Помогаю со студенческими работами здесь

Поиск в таблице и вывод нужных строк+замена числового значения словом
Всем доброго времени суток Подскажите пожалуйста как сделать следующее: Имеетца txt...

Сравнение 2-х строк, с разбивкой по символам
Приветствую всех! Необходима подсказка как реализовать задумку :) Есть 2 строки состоящие строго...

Конкатенация двух строк к символам
Чтоб алфавит получал например а б выводил ааб аbб ... аzб class Alphabets { public...

Сортировка строк по трем символам
Доброго времени суток! Нужна помощь в сортировке строк. Дана структура, необходимо отсортировать...

Сравнение строк по их начальным символам
У нас есть файл с содержанием: 123|456 456|789 qwe|rty. В программу поступают данные qwe она...

Удаление строк по повторяющимся первым символам
У меня есть текстовый файл, который содержит множество списков преобразованных в строки (каждая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru