Как отобразить другое изображение в зависимости от значения td?

#javascript #jquery #wordpress

#javascript #jquery #wordpress

Вопрос:

Я использую WordPress и хотел бы создать страницу с отслеживанием отправки с аналогичной функцией.

т.е. Если пакет доставлен и эта ячейка результата доставки не пуста, тогда покажите цветное изображение, в противном случае покажите серое изображение.

моя ячейка результата доставки имеет идентификатор «f1» и пуста

 <td id="f1"><td>
 

После этого я безуспешно попытался выполнить следующий код

 <script>
var x = document.getElementById ( "f1" );
if (x == null){
document.write('<img src="/wp-content/uploads/2021/01/airplane_off.png" style="width: 512px; height: 512px; margin: 1px;" />');
}
else{
document.write('<img src="/wp-content/uploads/2021/01/airplane_on.png" style="width: 512px; height: 512px; margin: 1px;" />');
}
</script>
 

Ваша помощь приветствуется

Комментарии:

1. Мой английский довольно плохой, поэтому я опубликую URL-адрес для лучшего понимания. < kaige.de/sia/501-00000000 > У этого есть данные в дате вылета рейса (строка 130), и поэтому изображение должно быть цветным (airplane_on.png) < kaige.de/sia/501-00000001 > У этого нет данных в дате вылета рейса, и поэтому изображение должно быть серым (airplane_off.png)

Ответ №1:

Если я правильно понимаю, вы хотите посмотреть, пуст ли внутренний html.

Вы должны быть в состоянии определить, является ли содержимое пустым, используя innerHTML :

 var x = document.getElementById("f1");

if (x amp;amp; x.innerHTML.trim() == ""){
  document.write('<img src="/wp-content/uploads/2021/01/airplane_off.png" style="width: 512px; height: 512px; margin: 1px;" />');
}
else{
  document.write('<img src="/wp-content/uploads/2021/01/airplane_on.png" style="width: 512px; height: 512px; margin: 1px;" />');
}
 

Обратите внимание, что в вашем примере используется <td id="f1"><td> . Тег не закрывается, что может вызвать проблемы, если у вас это тоже есть на странице.

Еще одна вещь, которую следует отметить, это то, что td она должна быть в правильной структуре таблицы (то есть внутри a tr , которая должна быть внутри a table ), иначе вы не сможете настроить на нее таргетинг.

Комментарии:

1. Спасибо за быстрый ответ, второй тег <td> закрыт, и они находятся в таблице. ваши коды работают только наполовину, потому что он всегда показывает случай «else». кажется, что ячейка никогда не бывает пустой, даже в исходном коде нет ничего между тегом <td> . Я разместил URL-адреса в своем вопросе, не могли бы вы, пожалуйста, взглянуть на это?

2. обновленный ответ для включения trim() , если это не работает, там может быть что-то еще, и вы можете захотеть console.log(x.innerHTML)

Ответ №2:

Предоставленный вами код почти правильный. Попробуйте указать innerHTML после getElementById()

 var data = document.getElementById ( "f1" );
if (x.innerHTML === ''){
  document.write('<img src="/wp-content/uploads/2021/01/airplane_off.png" style="width: 512px; height: 512px; margin: 1px;" />');
}
else{
  document.write('<img src="/wp-content/uploads/2021/01/airplane_on.png" style="width: 512px; height: 512px; margin: 1px;" />');
}
 

Комментарии:

1. я не работаю из-за x.innerHTML, Chrome сообщает об ошибке <Uncaught TypeError: не удается прочитать свойство ‘innerHTML’ null>

2. @KaiChen пожалуйста, убедитесь, что конкретный HTML-тег был отображен браузером до выполнения этого кода

3. попробуйте выполнить console.log(‘data’,document.getElementById ( «f1» ))