Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery选择器无法理解的问题_Jquery_Jquery Selectors - Fatal编程技术网

jQuery选择器无法理解的问题

jQuery选择器无法理解的问题,jquery,jquery-selectors,Jquery,Jquery Selectors,它应该做什么: 检查文档中是否有.box包装 如果是,并且在选项卡上有一个单击事件 查找。选择,并将类设置为空字符串 找到此的父项-单击链接并添加。选中 正如你所看到的,在最后一步,它失败了。 console.log($('this').parent('li'));=[] 为什么?怎么了?非常感谢您的建议。这是一个DOM对象,而不是选择器字符串,因此您需要: $(this).parent('li').addClass('selected'); console.log($(this).pare

它应该做什么:

  • 检查文档中是否有
    .box包装
  • 如果是,并且在
    选项卡上有一个单击事件
  • 查找
    。选择
    ,并将类设置为空字符串
  • 找到此
    的父项
    -单击链接并添加
    。选中
正如你所看到的,在最后一步,它失败了。
console.log($('this').parent('li'));=[]


为什么?怎么了?非常感谢您的建议。

这是一个DOM对象,而不是选择器字符串,因此您需要:

$(this).parent('li').addClass('selected');
console.log($(this).parent('li'));
而不是:

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

$('this')
将导致jQuery构造一个对象,其中包含与选择器匹配的所有元素“此”不是有效的选择器,因此会出现“选择器不可理解”错误,而
$(此)
指的是jQuery包装的单击锚。

不确定框包装器与此有何关系,但此单击功能应能工作:

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

哦。。我知道:P咖啡>睡眠。谢谢这段代码是更大的东西的一部分。很抱歉给你带来了困惑。