Jump to content
  • 0

Условие на JavaScript по URL


volshebnyi
 Share

Question

Здравствуйте!

Подскажите, пожалуйста, как написать на чистом JavaScript такое условие:

Если в url нет символа ? (знака вопроса), то "fieldset.filter-item a" присвоить класс current

Заранее благодарен за помощь!

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 1

Вы можете на codepen выложить часть проекта по которому у вас вопрос? А то не пойму почему у вас не получается.

Я изменил демку выше с вашими классами, там все работает.

Link to comment
Share on other sites

  • 1

Ааа понял.

Нужно было условие поменять.Исправил условие и в первой демке

Извиняюсь, не внимательно прочитал ваш вопрос. Мне показалось, что нужно было добавлять класс где есть ?, а где нету убирать.

Link to comment
Share on other sites

  • 1

https://jsfiddle.net/7okad4gu/
@AlexZaw

Array.prototype.forEach.call - перебор массива
document.querySelectorAll('a.all-active') - получаем массив элементов

    console.log(link.textContent, '=>',link.search);
    if (link.search) {
      link.classList.add('current');
    } else {
      link.classList.remove('current');
    }

Каждый элемент обрабатывается следующей функцией:
выводятся в консоль link.textContent, '=>',link.search
проверяется на наличие link.search = ?bla-bla-bla
если есть, то добавляем класс
если нет то удаляем

Link to comment
Share on other sites

  • 0

mrnobody, Спасибо! Мне пришлось поменять класс для ссылок - all-active. И почему-то так не работает:

Array.prototype.forEach.call(document.querySelectorAll('a.all-active'), function(link) {
    console.log(link.textContent, '=>',link.search);
    if (link.search) {
        link.classList.add('current');
    } else {
        link.classList.remove('current');
    }
});

 

Link to comment
Share on other sites

  • 0
14 часа назад, mrnobody сказал:

Вы можете на codepen выложить часть проекта по которому у вас вопрос? А то не пойму почему у вас не получается

Вот, выложил. К первой ссылке, у которой класс all-active класс current не добавляется, к сожалению...

 

Link to comment
Share on other sites

  • 0
1 час назад, mrnobody сказал:

Нужно было условие поменять.Исправил условие и в первой демке

Извиняюсь, не внимательно прочитал ваш вопрос. Мне показалось, что нужно было добавлять класс где есть ?, а где нету убирать.

mrnobody, спасибо Вам! Но, к сожалению, класс current теперь добавляется в любом случае - когда URL не содержит символ "?" и когда содержит...

Link to comment
Share on other sites

  • 0

Вот так заработало как нужно:

Array.prototype.forEach.call(document.querySelectorAll('a.all-active'), function(link) {
    if(window.location.href.indexOf("?") > -1) {
        link.classList.remove('current');
    }else {
        link.classList.add('current');
    }
});

Может быть я не правильно Вас понял...

с if (!link.search) не работает...

И в консоли появляется - содержание ссылки (тега а) и =>. 

Link to comment
Share on other sites

  • 0
2 часа назад, Switch74 сказал:


выводятся в консоль link.textContent, '=>',link.search
проверяется на наличие link.search = ?bla-bla-bla
 

основное понятно, но почему после '=>' выводятся только те ссылки где есть знак вопроса?

и почему если перенести его в другое место то после '=>' ничего не выводится?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy