Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.11.2020, 15:52
Новичок на форуме
Отправить личное сообщение для novigformus Посмотреть профиль Найти все сообщения от novigformus
 
Регистрация: 03.11.2020
Сообщений: 2

Скрыть строку таблицы исходя из текста и значения используя JS
Есть большая таблица с инпутами. Нужно при нахождении в соответствующей строке текста "Сортировка в разделе" и отсутствия значения в инпуте - скрыть данную строку. А если в инпуте есть значение, то она должна отображаться.


Пример HTML кода
<table>
		<tr class="bx-in-group" id="tr_PROPERTY_523">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Климатические комплексы [976]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tb4c9fda7c3514b7b7f76cda8870d3e274"><tbody><tr><td><input name="PROP[523][n0]" value="" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
		<tr class="bx-in-group" id="tr_PROPERTY_524">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Аромалампы [1972]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tbb55807774637cf8adceb9dbe6e6c62cd"><tbody><tr><td><input name="PROP[524][n0]" value="2" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
		<tr class="bx-in-group" id="tr_PROPERTY_525">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Прочее [1156]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tbff90da9577bea62c1c1e48a9577b5ae7"><tbody><tr><td><input name="PROP[525][n0]" value="" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
		<tr class="bx-in-group" id="tr_PROPERTY_526">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Ортопедическая обувь [1977]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tbcc955d1caa1c3d6f8d5004fb20bfbadf"><tbody><tr><td><input name="PROP[526][n0]" value="" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
		<tr class="bx-in-group" id="tr_PROPERTY_527">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Обогреватели [974]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tb49953deef72bc73283e6528bf7ef5215"><tbody><tr><td><input name="PROP[527][n0]" value="20" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
		<tr class="bx-in-group" id="tr_PROPERTY_528">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Мезороллеры [1392]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tb4bea3a4d6322723484f379a5d572b034"><tbody><tr><td><input name="PROP[528][n0]" value="" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
</table>


Есть код на JS, но почему-то если подряд идут несколько строк с пустым инпутом, то скрываются инпуты через один, что не так с кодом?

const tdDesc = document.querySelectorAll('.desc');
const tdInps = document.querySelectorAll('td input');
const reg = /Сортировка в разделе/gi;

[...tdDesc].forEach((e, i) => {
  if(tdInps[i].value.length === 0 && reg.test(e.textContent)) {
    e.parentElement.style.display = 'none';
  }
});
Ответить с цитированием
  #2 (permalink)  
Старый 03.11.2020, 16:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

novigformus,
на выбор, в строке 5 обнулить индекс reg или создать reg;
Ответить с цитированием
  #3 (permalink)  
Старый 03.11.2020, 16:48
Новичок на форуме
Отправить личное сообщение для novigformus Посмотреть профиль Найти все сообщения от novigformus
 
Регистрация: 03.11.2020
Сообщений: 2

Сообщение от рони Посмотреть сообщение
novigformus,
на выбор, в строке 5 обнулить индекс reg или создать reg;
Попробовал обнулить индекс, но что-то не срабатывает. Подскажите как правильно сделать.
Ответить с цитированием
  #4 (permalink)  
Старый 03.11.2020, 17:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

novigformus,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .bx-in-group.hide{
       display: none;
  }

  </style>
</head>

<body>
<table>
		<tr class="bx-in-group" id="tr_PROPERTY_523">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Климатические комплексы [976]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tb4c9fda7c3514b7b7f76cda8870d3e274"><tbody><tr><td><input name="PROP[523][n0]" value="" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
		<tr class="bx-in-group" id="tr_PROPERTY_524">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Аромалампы [1972]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tbb55807774637cf8adceb9dbe6e6c62cd"><tbody><tr><td><input name="PROP[524][n0]" value="2" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
		<tr class="bx-in-group" id="tr_PROPERTY_525">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Прочее [1156]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tbff90da9577bea62c1c1e48a9577b5ae7"><tbody><tr><td><input name="PROP[525][n0]" value="" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
		<tr class="bx-in-group" id="tr_PROPERTY_526">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Ортопедическая обувь [1977]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tbcc955d1caa1c3d6f8d5004fb20bfbadf"><tbody><tr><td><input name="PROP[526][n0]" value="" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
		<tr class="bx-in-group" id="tr_PROPERTY_527">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Обогреватели [974]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tb49953deef72bc73283e6528bf7ef5215"><tbody><tr><td><input name="PROP[527][n0]" value="20" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
		<tr class="bx-in-group" id="tr_PROPERTY_528">
			<td class="adm-detail-valign-top adm-detail-content-cell-l desc" width="40%">Сортировка в разделе "Мезороллеры [1392]":</td>
			<td width="60%" class="adm-detail-content-cell-r"><table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tb4bea3a4d6322723484f379a5d572b034"><tbody><tr><td><input name="PROP[528][n0]" value="" size="30" type="text"><br></td></tr></tbody></table></td>
		</tr>
</table>
<script>
const reg = /Сортировка в разделе/gi;
const group = document.querySelectorAll('.bx-in-group');
group.forEach((parent, i) => {
const tdDesc = parent.querySelector('.desc');
const tdInps = parent.querySelector('input');
    reg.lastIndex  = 0;
    if(!tdInps.value.trim() && reg.test(tdDesc.textContent)) {
        parent.classList.add('hide');
    }
});

</script>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли скрыть JS файл или его содержимое? Lefseq Общие вопросы Javascript 1 13.05.2019 07:26
Как с помощью скрипта высчитать ширину полосы прокрутки? LADYX Элементы интерфейса 35 13.11.2017 12:50
Input type="time" + JS +Safari (iPhone) dpts Opera, Safari и др. 0 21.09.2016 07:24
Скрыть ссылку на js Googert Общие вопросы Javascript 10 21.02.2012 17:29
Вывод JS значения в одну строку в HTML velo Общие вопросы Javascript 7 15.12.2009 03:57