Скрытие div, если другой содержит определенную строку в jQuery - PullRequest
0 голосов
/ 31 января 2019

Я хочу проверить, содержит ли элемент на странице текстовую фразу, он показывает второй скрытый контейнер?Например, «# product-description» содержит «лучший подарок», а затем скрытый контейнер «# best-gift-graphic» поверх изображения продукта.Я нашел ответы на эти вопросы, которые касаются этого, и разбираю части, но я не могу собрать все это вместе.

Я нашел решения, которые скрывают элемент, содержащий текст:

<script type="text/javascript">
 $(document).ready(function () {
  $("div p:contains('text')").parent('div').hide();
 });
</script>

Мне нужно применить show / hide ко второму контейнеру, а не к контейнеру с целевой фразой. Действительно новичок в jquery и просто хочу понять синтаксис.Спасибо в ожидании.

1 Ответ

0 голосов
/ 31 января 2019

Вам нужно проверить длину, чтобы увидеть, существуют ли какие-либо элементы, затем вы можете использовать .hide(), чтобы скрыть соответствующий элемент, если он есть:

if ($('#product-description:contains("best gift")').length) { // check if this exists
  $('#best-gift-graphic').hide(); // hide this
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="product-description">best gift</div>
<div id="best-gift-graphic">this is hidden</div>
...