Как найти элемент, используя текст () - PullRequest
1 голос
/ 03 октября 2019

Мне интересно, возможно ли скрыть родительский div на основе содержимого дочернего текста?

//$('div > .tree-title').hide(); 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  <span>1</span>
  <span></span>
  <span class="tree-title">Hello</span>
</div>
<div class="container">
  <span>2</span>
  <span></span>
  <span class="tree-title">World</span>
</div>

В этом случае я хотел бы скрыть второй div, потому что класс .tree-title содержит World текст.

Ответы [ 4 ]

3 голосов
/ 03 октября 2019

Вы можете использовать jQuery :contains() и .parent()

$('div > .tree-title:contains(World)').parent().hide();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  <span>1</span>
  <span></span>
  <span class="tree-title">Hello</span>
</div>
<div class="container">
  <span>2</span>
  <span></span>
  <span class="tree-title">World</span>
</div>
2 голосов
/ 03 октября 2019

Использование содержит :

$('div > .tree-title:contains("World")').parent().hide();

Использование фильтра :

$('.tree-title').contents().filter(function(){
  return $(this).text().trim() == 'World';
}).parents('container').hide();
0 голосов
/ 03 октября 2019

Вы также можете:

$('.tree-title').each(function() {
  if($(this).text() === 'World') {
    $(this).parent().hide();
  }
});

Надеюсь, это поможет:)

0 голосов
/ 03 октября 2019

Использование :has и :contains Селектор

$('div:has(.tree-title:contains(World))').hide();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container">
  <span>1</span>
  <span></span>
  <span class="tree-title">Hello</span>
</div>
<div class="container">
  <span>2</span>
  <span></span>
  <span class="tree-title">World</span>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...