何时在javascript中使用css元素/类选择器
When to use the css element/class selector in javascript?
我目前正在进行关于构建交互式网站的codecademy课程,我偶然发现了关于css元素的element/class选择的使用的模糊性。
javascript:
var main = function() {
$('.article').click(function() {
$('.article').removeClass('current');
$('.description').hide();
$(this).addClass('current');
$(this).children('.description').show();
});
};
css:
.current .item {
background: rgba(206,220,206,.9);
}
为什么我必须使用元素选择器"current"而不是第4行中的类选择器".current"?它背后有什么规则吗?或者只是jquery的一个规范?
仅仅因为类的名称是current
而不是.current
,并且在中
$('.article').removeClass('current');
current
不是任何选择器,只是要删除的classname
,而选择器是.article
。
您认为我们使用的是元素选择器而不是类选择器。但你错了。您是否在removeClass和addClass中看到Class一词?这意味着您传递的是类选择器,而不是元素选择器作为参数。
现在你们可能会问,为什么你们看不到电流点?因为类是使用句点指定的。事实上,我们已经指定我们正在传递类选择器,正如您可以在removeClass和addClass中看到的单词"Class"。
根据文件addClass()
:
将指定的类添加到一组匹配元素中的每一个。
因此,您需要传递classname/names作为参数,而不是由它构建的类选择器
在addClass
/removeClass
中,您使用类名(类似于在html的class
属性中指定的类名),而不是像$()
中那样使用DOM选择器。
函数名removeClass()意味着您必须声明类名。使用选择器,您必须指定要选择类或ID。
addClass
和removeClass
方法接受一个或多个空间分隔的类,这些类将从每个匹配元素的类属性中删除。要添加/删除的calss的名称是"current",而不是".current"
http://api.jquery.com/removeclass/
http://api.jquery.com/addclass/
在第4行中,您没有使用"current"作为选择器,它是一个类名。每当你使用某个类名作为选择器时(例如在.find('.current'), $('.current') , closest('.current') etc) then only the rule of putting
.for class name
#`for id等)。每当你检查某个类是否存在(.hasClass()),添加和删除一个类(addClass('current'),removeClass('current'),那么你必须提到正确的类名。我希望它能有所帮助。
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 使用元素选择器向Object添加函数
- j查询未来元素选择器
- Jquery动态元素选择器
- 如何通过元素选择器获取tinyMCE编辑器实例
- 如何在 Edge Animate 中使用类元素选择器绑定 ElementAction
- jQuery在以下选择器中引用初始元素选择器
- 编写一个类似jQuery的JS元素选择器
- 并行元素选择器
- 带有元素选择器的jQuery get()函数
- Jquery Html元素选择器
- 在IE上组合了活动状态伪类和相邻元素选择器
- 仅为通过元素选择器选择的元素获取指定的属性列表
- 为什么jQuery元素[]选择器在这种情况下不起作用?
- jQuery元素选择器
- Javascript元素选择器
- 用于多个元素/选择器的字符语法
- 如何使用Jquery中的元素选择器和类选择器
- 多元素选择器上的jQuery方法链接
- 如何使用jQuery元素选择器从表单中获取输入字段的ID