[英]jQuery addClass to element with same class name with Waypoints
我有一个事件,需要在其中将一个类添加到具有匹配类名称的元素中。 例如:
<a class="one"></div>
<a class="two"></div>
<div class="one"></div>
<div class="two"></div>
如何找到具有匹配类名称的元素并将其添加到元素中? 这是我的脚本,我需要它以匹配类的标记为目标。
jQuery('div.two').waypoint(function(direction) {
if (direction === 'down') {
jQuery(this).addClass("active") // to <a> element that shares same class
}
else {
}
});
我对这个插件不熟悉,但我会试一试。 根据您提供的信息,我认为您的问题是:
jQuery(this).addClass("active")
由于您已经了解该课程,因此请执行以下操作:
var tempClass = $(this).attr("class");
jQuery("a."+tempClass).addClass("active");
只需按类别名称进行选择即可。
Array.prototype.forEach.call(document.querySelectorAll(".one"), function(el) {
el.classList.add("whateverClass");
});
代替for循环,它使用原型方法forEach
和call
方法将NodeList转换为数组列表,将类添加到具有“ one”类的每个元素中
您可能想先从其他类中删除该类,然后将其添加到适用的<a>
jQuery('div.two').waypoint(function(direction) {
if (direction === 'down') {
/* remove prior active class */
jQuery("a.active").removeClass('active');
/* add to current one */
jQuery("a.two").addClass('active');
}
else {
}
});
为了使它更通用,我将向所有内容元素添加一个类,如waypoint
以及一个能够简化实例的data-point
。
<div data-point="one" class="waypoint"></div>
JS
jQuery('.waypoint').waypoint(function(direction) {
if (direction === 'down') {
/* remove prior active class */
jQuery("a.active").removeClass('active');
/* add to current one */
var linkClass=$(this).data('point')
jQuery("a." + linkClass).addClass('active');
}
else {
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.