Задать вопрос
@Dizzy221
PHP Программист

Как проверить элемент на существование по тексту?

HTML имеет такую структуру:
<div class="field">
   <div class="name">some name 1</div>
   <div class="somclass1">...</div>
</div>
<div class="field">
   <div class="name">some name 2</div>
   <div class="somclass2">...</div>
</div>
<div class="field">
   <div class="name">some name 3</div>
   <div class="somclass3">...</div>
</div>


Как я могу проверить на существование "some name 1" (значение дива name) и если оно существует то поставить style="visibility: hidden" классу field, в котором находится some name 1? Прошу помочь с реализацией...
  • Вопрос задан
  • 111 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Где, кто и что:

const containerSelector = '.field';
const textSelector = '.name';
const text = 'some name 1';

Скрываем:

document.querySelectorAll(`${containerSelector} ${textSelector}`).forEach(n => {
  if (n.innerText.indexOf(text) !== -1) {
    n.closest(containerSelector).style.visibility = 'hidden';
  }
});

или

.hidden {
  visibility: hidden;
}

for (const n of document.querySelectorAll(containerSelector)) {
  n.classList.toggle('hidden', n.querySelector(textSelector).textContent.includes(text));
}
Ответ написан
Комментировать
john36allTa
@john36allTa
alien glow of a dirty mind
Извиняюсь, не правильно понял вопрос..
$("div.name:contains('some name 1')").each(function(i){
   $(this).parent().css("visibility", "hidden");
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ellenripley4
@ellenripley4
Любитель тяжелой музыки и фронтэнда
Попробуйте так. В синтаксисе Jquery не силен, но логика примерно такая.
var name = $('.name');
if (name.text() == '') {
    name.parent().css({ visibility: hidden });
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы