在查看jQuery示例时,我看到引用了前缀“。”的CSS类。有时和其他时间没有。例如,在codecademy的这个片段中:
else if(event.which === 110) {
var currentArticle = $('.current');
var nextArticle = currentArticle.next();
currentArticle.removeClass('current');
为什么第二行需要选择器$('。current'),但第四行只需要('current')?
答案 0 :(得分:1)
在$('.current')
中(或者在find / next等方法中,您尝试查找具有给定类的元素),我们使用了一个选择器,因此类选择器的符号在{{1}之前必须使用。
当您添加/删除/切换某个类时,您没有使用选择器,您只是使用了一个名称,因此没有使用.
答案 1 :(得分:1)
这是一个惯例。
在第二行$(' .current')告诉jQuery搜索名为" current"并且点将其指定为类。所以我们需要调用" .current"
在第4行,您已经告诉jQuery您将使用" removeClass"来选择一个类。所以你不需要在那里使用点。因为那就像" removeClass当前是一个类"
答案 2 :(得分:0)
该方法明确使用术语 Class 。
否则,您将始终需要一个类选择器, if 这是您定位元素的方法(您可以通过ID,数据属性,HTML标记进行定位)。
答案 3 :(得分:0)
jQuery选择器设计了CSS属性,因此可以使用相同的语法,你也可以使用class
选择器不同的方式,如$(“[current]”)它将作为HTML
标记元素使用正常。
函数removeClass()
没有将类作为选择器,函数宣布只对类正确使用所以不需要确定传递值,尽管函数将值作为字符串而不是<selector>
答案 4 :(得分:0)
我认为
var currentArticle = $('.current');
这里你需要一个点,因为它意味着你通过类匹配来选择它。
在下面:
currentArticle.removeClass('current');
您已指定删除某个类,但您不需要点,因为此处它不是选择器,而是您要删除的类名。
答案 5 :(得分:0)
removeClass()
AND $('.current')
都是方法,您可以将参数传递给方法,唯一的一点就是jQuery
使用的约定。尝试将您的类命名为<div class='.current'>I am a div</div>
并尝试此console.log($('..current').text());
您将遇到此错误Error: Syntax error, unrecognized expression: ..testA
所以基本上是jQuery的规则/约定。