jQuery选择器难以理解的问题

时间:2011-08-05 21:15:10

标签: jquery jquery-selectors

I have following example

应该做什么:

  • 检查文档
  • 中是否有.box-wrapper
  • 如果是,且.tabs li a
  • 上有点击事件
  • 找到.selected并将类设置为空字符串
  • 找到this的父级 - 点击了链接并添加了.selected

在最后一步,它失败了,你可以看到。 console.log( $('this').parent('li') ); = []

为什么呢?怎么了?任何建议都非常赞赏。

2 个答案:

答案 0 :(得分:6)

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'不是一个有效的选择器,所以你得到'选择器难以理解'的错误,而$(this)指的是jQuery包装的点击锚。

答案 1 :(得分:1)

不确定哪个盒子包装器与它有关,但是这个点击功能应该可以工作:

$(".tabs li a").click(function(){
     $(".tabs li").removeClass("selected");
     $(this).parent().addClass("selected");
}