Мне нужно скрыть строку полета с номером полета более 6 символов (включая EY-), например, когда страница загружает строку для EY-5306, должна быть полностью скрыта и показывать только строку с номер рейса EY-513.

<tr>
   <td>EY-5306</td>
   <td>29 Oct 2019</td>
   <td>07:00 am</td>
   <td>AUH</td>
   <td>AMM</td>
   <td>
      <a href="https://www.example.com?flightNumber=5306" role="link">Check flight status <img src="/images/test0.jpg" alt="image" class="check-flight-arrow"></a>
   </td>
</tr>

<tr>
   <td>EY-513</td>
   <td>29 Oct 2019</td>
   <td>10:35 am</td>
   <td>AUH</td>
   <td>AMM</td>
   <td>
      <a href="https://www.example.com?flightNumber=513" role="link">Check flight status <img src="/images/test1.jpg" alt="image" class="check-flight-arrow"></a>
   </td>
</tr>

Когда запускается сценарий JS, я хочу увидеть таблицу, но при этом исключить строку с номером рейса EY-5306, потому что количество символов больше 6.

-2
Ayaz 28 Окт 2019 в 09:21
Используйте string.length и сделайте условие. Например: if( word.length == 6){ display ;}
 – 
Jervz09
28 Окт 2019 в 09:30

1 ответ

Лучший ответ

Используйте .text().length;, чтобы получить количество символов.

$('tr td:nth-child(1)').each(function(){
  var value = $(this).text().length;
  if (value > 6){
  $(this).parent().hide();
  }
});
table{
width:100%;
border:1px solid #ddd;
}

td{
border:1px solid #ddd;
padding:10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tbody>
<tr><td>EY-5306</td><td>29 Oct 2019</td><td>07:00 am</td><td>AUH</td><td>AMM</td><td><a href="https://www.example.com?flightNumber=5306" role="link">Check flight status
<img src="/images/test0.jpg" alt="image" class="check-flight-arrow"></a></td></tr>

<tr><td>EY-513</td><td>29 Oct 2019</td><td>10:35 am</td><td>AUH</td><td>AMM</td><td><a href="https://www.example.com?flightNumber=513" role="link">Check flight status
<img src="/images/test1.jpg" alt="image" class="check-flight-arrow"></a></td></tr>
</tbody>
<table>
0
Ahmed Tag Amer 28 Окт 2019 в 12:36
Привет, Ахмед, это работает для меня, когда я размещаю следующий код в браузере, но, поскольку я ввожу код из приложения в виде слоя, то же самое не работает по какой-то причине.

Делюсь с вами ссылкой на страницу. etihad.com/en/manage/flight-tracker

Измените параметр на «Отправление и пункт назначения» для поиска Абу-Даби в Амман и нажмите «Найти». вы увидите таблицу, о которой я говорил выше.

$('tr td:nth-child(1)').each(function(){ var value = $(this).text().length; if (value > 6){ $( this).parent().hide();} });
 – 
Ayaz
28 Окт 2019 в 14:33
Что вы пытаетесь сделать именно? это работает на консоли.
 – 
Ahmed Tag Amer
28 Окт 2019 в 15:07
Спасибо, что изучили это для меня. Я использую тестовую платформу A/B под названием Adobe Target. Он вводит ваш код в самом начале загрузки страницы, но на самом деле код должен запускаться после того, как пользователь выполнит поиск, заполнив форму и нажав кнопку «Найти». После этого таблица загружается.
 – 
Ayaz
28 Окт 2019 в 16:04
Попробуйте этот $(".fs-ond-submit-btn button").click(function(){ setTimeout(function(){ XXXX }, 10); }) и замените XXXX предыдущим кодом.
 – 
Ahmed Tag Amer
28 Окт 2019 в 16:16