#javascript
#javascript
Вопрос:
Я хочу удалить текст между, <a href="#" class="main_navigation-mobile-logo">text</a>
когда в <ul class="main_navigation-menu js-main_navigation-menu">
будет переключен class .main_navigation-menu-open, поэтому, когда он будет выглядеть так там: <ul class="main_navigation-menu js-main_navigation-menu main_navigation-menu--open">
я хочу удалить этот текст между a (он отображается только в максимальной ширине 991px)
JS:
const menuMobile = document.querySelector(".js-main_navigation-menu");
function myFunction(x, y) {
if (x.matches amp;amp; y.matches) {
$('.main_navigation-mobile-logo').html('');
}
}
var x = window.matchMedia("(max-width: 991px)");
var y = menuMobile.classList.contains("main_navigation-menu--open");
myFunction(x, y);
x.addEventListener(myFunction);
y.addEventListener(myFunction);
HTML:
<ul class="main_navigation-menu js-main_navigation-menu">
<li>...</li>
<button>...</button>
</ul>
<a href="#" class="main_navigation-mobile-logo">text</a>
Что не так с кодом? Это не работает.
Комментарии:
1. Я пишу другой ответ с помощью CSS, который удаляет текст при открытии меню
2. Используйте
element.classList.contains(class);
thenelement.innerText = '';
(чистый JS, без jQuery).
Ответ №1:
CSS:
@media (max-width: 991px) {
.main_navigation-menu--open a { //select the adjacent sibling
font-size: 0;
}
}
Поэтому, когда он открыт, текст исчезает
Ответ №2:
// when screen is max-width 991px
if ($(window).width() <= 991) {
$('#toggle').on('click', function () {
$('.main_navigation-menu').toggleClass('main_navigation-menu--open');
$('.main_navigation-mobile-logo').toggle();
});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="toggle">click me for toggle</button>
<ul class="main_navigation-menu js-main_navigation-menu">
<li>...</li>
<button>...</button>
</ul>
<a href="#" class="main_navigation-mobile-logo">text</a>
Ответ №3:
Существуют различные способы манипулирования текстом
function myFunction(x, y) {
if (x.matches amp;amp; y.matches) {
$('.main_navigation-mobile-logo').innerHTML = '';
}