|
08.03.2016, 14:39
|
Интересующийся
|
|
Регистрация: 27.02.2016
Сообщений: 18
|
|
destus,
не могли бы Вы мне объяснить почему, после того, как я убираю "return true" поиск становится точнее?
|
|
08.03.2016, 14:43
|
|
Профессор
|
|
Регистрация: 18.05.2011
Сообщений: 1,207
|
|
santey12,
потому что return прерывает дальнейшее выполнение функции. Нашли первое совпадение => return true => выход из функции, хотя совпадения ещё были.
Если функция из себя ничего интересного не представляет, и не должна возвращать какое-то выражение, можно вообще return не использовать. Пусть она возвращает undefined.
|
|
08.03.2016, 14:50
|
Интересующийся
|
|
Регистрация: 27.02.2016
Сообщений: 18
|
|
destus, еще хотел спросить, для сортировки лучше использовать новую функцию или продолжить работу с моей?
|
|
08.03.2016, 14:56
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Поиск по строкам таблицы
santey12,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
tbody tr.search {
background-color: paleturquoise;
}
</style>
<title></title>
<script>
window.onload = function() {
function b(d) {
var b = 1;
[].forEach.call(e, function(a) {
a.classList.remove("search");
[].some.call(a.querySelectorAll("td"), function(a) {
var b = a.querySelector("select");
return b ? ~b.value.indexOf(d) : ~a.innerHTML.indexOf(d)
}) ? (d && a.classList.add("search"), c.insertBefore(a, tbl.rows[b++])) : c.appendChild(a)
})
}
var c = document.querySelector("#tbl tbody"),
e = c.querySelectorAll("tr");
btn.onclick = function() {
b(srch.value)
}
};
</script>
</head>
<body>
<p align="middle">
<input id="srch" type="text" class="srch" value="Введите текст для поиска" onfocus="this.value=''">
<button id="btn" class="button">Поиск</button>
</p>
<script src="js/tbl.js"></script>
<table id="tbl" border="1">
<thead>
<tr>
<th>Номер строки</th>
<th>Марка</th>
<th>Тип кузова</th>
<th>Дата</th>
<th>Количество</th>
<th>Статус</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Хендай</td>
<td>универсал</td>
<td value="2016-01-01">2016-01-01</td>
<td>11</td>
<td>
<select>
<option value="Open">Open</option>
<option value="In progress">In progress</option>
<option selected value="Resolved">Resolved</option>
</select>
</td>
</tr>
<tr>
<td>2</td>
<td>Тойта</td>
<td>седан</td>
<td value="2016-02-01">2016-02-01</td>
<td>10</td>
<td>
<select>
<option selected value="Open">Open</option>
<option value="In progress">In progress</option>
<option value="Resolved">Resolved</option>
</select>
</td>
</tr>
<tr>
<td>3</td>
<td>Лада</td>
<td>седан</td>
<td value="2016-03-01">2016-03-01</td>
<td>300</td>
<td>
<select>
<option selected value="Open">Open</option>
<option value="In progress">In progress</option>
<option value="Resolved">Resolved</option>
</select>
</td>
</tr>
<tr>
<td>4</td>
<td>Форд</td>
<td>хэтчбек</td>
<td value="2016-04-01">2016-04-01</td>
<td>120</td>
<td>
<select>
<option value="Open">Open</option>
<option selected value="In progress">In progress</option>
<option value="Resolved">Resolved</option>
</select>
</td>
</tr>
<tr>
<td>5</td>
<td>Шкода</td>
<td>лифтбэк</td>
<td value="2016-05-01">2016-05-01</td>
<td>99</td>
<td>
<select>
<option value="Open">Open</option>
<option value="In progress">In progress</option>
<option selected value="Resolved">Resolved</option>
</select>
</td>
</tr>
</tbody>
</table>
</body>
</html>
|
|
08.03.2016, 14:57
|
|
Профессор
|
|
Регистрация: 18.05.2011
Сообщений: 1,207
|
|
santey12,
Мне кажется что в этой же будет оптимальнее.
|
|
08.03.2016, 15:09
|
Интересующийся
|
|
Регистрация: 27.02.2016
Сообщений: 18
|
|
рони, не совсем понимаю, как происходит выделение найденных строк?
|
|
08.03.2016, 15:25
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
santey12,
если в одной из ячеек строки есть совпадение по тексту или в селекторе и значение поиска существует, присваивается класс - строка 23 -- есть совпадение или нет вычислят строки 20 - 23
|
|
08.03.2016, 15:26
|
Интересующийся
|
|
Регистрация: 27.02.2016
Сообщений: 18
|
|
Если в поиске задать "2", то он выделит всю таблицу, т.к поле "дата" начинается с "2".
|
|
08.03.2016, 15:53
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
santey12,
и чего?
Сообщение от рони
|
осталось только дождаться когда ТС придумает приоритеты сортировки
|
|
|
08.03.2016, 15:55
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
santey12,
или используйте регу для точного совпадения
|
|
|
|