проблема с функцией jquery addClass

#jquery #addclass

#jquery #addclass

Вопрос:

 <script>    
$("ul#sol_menu li a").addClass(function()) {
var current_page = document.location.href;
if ($(this).attr.("href").match(current_page)) {
$(this).addClass('highlight');
};
});
</script>
  

Что в этом плохого?

Комментарии:

1. В каждой отдельной строке (кроме одной) есть несколько ошибок. Вам необходимо изучить синтаксис Javascript и jQuery.

2. Вы знаете, что в браузерах есть консоль ошибок, верно? :)

3. @SLaks, какая именно, </script> строка? O.o

4. @David: в var currentPage

Ответ №1:

Я полагаю, что это может быть тем, к чему вы стремились…
И, как указал СЛакс, ваш синтаксис (в данном случае) немного ужасен…

 <script>    
    $(document).ready(function(){
        var current_page = document.location.href;
        $("ul#sol_menu li a").each(function(){
            if ($(this).attr('href') == current_page) {
                $(this).addClass('highlight');
            }
        });
    });
</script>
  

Итак, чтобы ответить на ваш вопрос… следующее было неправильным в вашем коде:

  1. В зависимости от того, был ли ваш тег script до или после вашего элемента ul, вам нужно использовать $ (document).готовая функция
  2. Вы неправильно использовали обратный вызов addClass…
  3. У вас была дополнительная скобка при обратном вызове addClass «addClass(function()) {» должно было быть «addClass(function() {«
  4. Нет метода .match, подобного тому, который вы использовали…
  5. Здесь произошла синтаксическая ошибка: ‘.attr.(«href»)’; нет точки после ‘.attr’

    Надеюсь, это ответ на ваш вопрос.

Ответ №2:

Я думаю, это то, что вы пытаетесь сделать, с комментариями, так что, надеюсь, вы узнаете что-нибудь о Javascript / jQuery:

 // when DOM is ready
$(function(){    

    // cache current URL
    var current_page = document.location.href;

    // use .each method to check link hrefs against current location
    $("ul#sol_menu li a").each(function () {

        // if this link is for the current page, highlight it
        if (current_page.indexOf(this.href) >= 0) {
            $(this).addClass('highlight');
        };

    });

});