"не является функцией" jQuery - PullRequest
0 голосов
/ 19 февраля 2020

У меня маленькая проблема с jQuery. Я просто хочу удалить и добавить класс на моем "li", но он сказал мне "это не функция". Вот мой код:

$(document).ready(function (){
    var title = $('title')
    var nav = $('.nav-a')

    for ($i = 0 ; $i<nav.length ; $i++)
    {
       if (title[0].text === nav[$i].text){
        var newTitle = title[0].text
        var newNav = nav[$i].text
        var navI = nav[$i].parentElement
        console.log(newTitle)
        console.log(newNav)
        console.log(navI)

        nav.parent().removeClass('menu-active')
        navI.addClass('menu-active')
       }
    }
  })

В консоли у меня есть: Uncaught TypeError: navI.addClass не является функцией

1 Ответ

1 голос
/ 19 февраля 2020

Проблема в том, что вы вызываете нативные методы объекта Element для jQuery объектов и наоборот.

Чтобы исправить эту палку одним или другим. Таким образом, вот упрощенный пример jQuery, который использует filter() для сопоставления элементов по их тексту вместо явного l oop.

jQuery(function($) {
  var title = $('title').text();
  var nav = $('.nav-a').filter(function() {
    return $(this).text().trim() === title;
  }).parent().addClass('menu-active'); 
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...