jQuery селектор неразборчивая проблема - PullRequest
2 голосов
/ 06 августа 2011

У меня есть следующий пример

Что он должен делать:

  • проверить, есть ли .box-wrapper в документе
  • если да, и есть событие click для .tabs li a
  • , найдите .selected и задайте для класса пустую строку
  • найдите родителя для this - нажмите на ссылку и добавьте .selected

И на последнем шаге это терпит неудачу, как вы можете видеть.console.log( $('this').parent('li') ); = []

Почему?Что случилось?Любое предложение высоко ценится.

Ответы [ 2 ]

6 голосов
/ 06 августа 2011

this - это объект DOM, а не строка селектора, поэтому вам необходимо:

$(this).parent('li').addClass('selected');
console.log($(this).parent('li'));

вместо:

$('this').parent('li').addClass('selected');
console.log($('this').parent('li'));

$('this') заставит jQuery создать объект, который обернет все элементы, соответствующие вашему селектору. «this» не является допустимым селектором, поэтому вы получаете эту ошибку «selector unintelligible», тогда как $(this) относится к привязанному по jQuery клику.

1 голос
/ 06 августа 2011

не уверен, что упаковщик ящиков имеет к этому отношение, но эта функция щелчка должна работать:

$(".tabs li a").click(function(){
     $(".tabs li").removeClass("selected");
     $(this).parent().addClass("selected");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...