как я могу преобразовать этот код jquery в ваниль Javascript
$("h2:contains('" + search + "')").closest(".element").show();
$("h2:not(:contains('" + search + "'))").closest(".element").hide();
я получил вторую половину линии, чтобы быть
closest(".element").style.display = "block"
но я не могу найти способ, чтобы первая половина работала в обычном Javascript. Я создаю функцию поиска в реальном времени, чтобы текст во вводе поиска соответствовал h2. если они совпадают, будет отображаться контент, если нет, контент будет отображаться как «нет».



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В Jquery содержит дает вам строку текста для поиска.
Итак, здесь вам нужно получить все теги h2 и искать по их тексту.
Поскольку элементы h2 не имеют значения, вы должны использовать innerHTML, а затем вместо contains вы должны использовать метод включает в себя.
var allHTwos= document.getElementsByTagName('h2');
for (i=0; i<allHTwos.length; i++) {
var gh = allHTwos[i];
var ts = gh.innerHTML;
if (ts.includes(search)){
// Do your hide/unhide here
}
}
jquery - это javascript, если вам нужен ванильный вариант этого javascript, просто возьмите код для каждого из методов, которые вы вызвали, из источника jquery, в противном случае для создания этой функции требуется много работы. Вся суть jQuery в том, что это занимает слишком много времени в ванильном JS, поэтому у нас есть библиотека.