#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» ))