在平常生活中,制做一个切换item的active属性的items块是一个很是常见的小案例,普遍应用于诸多行业,今天咱们从这样一个简单的案例来学习jquery是怎样替代js去达到快捷编程的。jquery
咱们先考虑如何用原生Js完成这个案例,将实现过程的思路调理清晰,再使用jquery改写脚本。思路以下:
获取item数组,对item数组进行循环操做,在每次循环中对对应下标i的item元素进行事件监听,发生鼠标点击事件后,再次对整个item数组进行循环操做,将全部item移除active类名,再将this指针指向的被鼠标点击的元素,增长一个active类名。编程
var oType = document.querySelectorAll('.item-price');
for (let i = 0; i < oType.length; i++) {
oType[i].addEventListener('click', function(){
for (let j of oType) {
j.classList.remove('active');
}
this.classList.add('active');
})
}
复制代码
在原生js方案中,须要使用嵌套循环去实现这样一个案例,看上去十分繁琐。使用jquery则很是快捷简便,思路以下:
使用类名选择器获取item,添加click事件,对使用类名选择器的元素添加过滤器,过滤获得已有active类名的item,移除其active类名,使用jquery对象$(this),添加active类名开关。数组
$(".item-price").click(function(){
$(".item-price").filter(".on").removeClass("on");
$(this).toggleClass("on");
})
复制代码
比较之下,使用jquery实现是否是很是清爽,快捷有力呢。bash