循环遍历一组元素 jQuery
Loop through a set of elements jQuery
我正在尝试循环遍历 12 个类,命名为 .video-link0
到 video-link11
个类,每个类都得到处理:
$('.video-link[n]').click(function() {
$('.video-link[n]').addClass('show');
});
本质上,我想要以下行为:
单击.video-link1
时,addClass('show')
video-link1
单击.video-link2
时,addClass('show')
video-link2
依此类推,好像我有 12 个看起来像这样的函数:
$('.video-link1').click(function() {
$('.video-link1').addClass('show');
});
$('.video-link2').click(function() {
$('.video-link2').addClass('show');
});
... and so on
我想编写一个循环,以取代将其写成 12 个单独案例的需要。
以下内容不会产生我正在寻找的结果:
var elems = 12;
for(var i = 0; i < elems; i++){
$('.video-link' + i).click(function() {
$('.video-link' + i).addClass('show');
});
};
** 更新 **
这不是一个重复的问题,否则上面提到的问题不能满足我的要求。我不想用next
在 DOM 上上下移动.相反,我想编写一个循环,使用 i
遍历编号为 0-11 的 12 个类来枚举案例。
更新 **
这对我有用,并且使用了劳埃德班克斯的建议(我需要i
枚举器加上this
关键字):
for (var i = 0; i < 12; i++) {
$('.video-link'+i).click(function() {
$(this).addClass('show');
});
}
您可以使用 start with ^=
选择器,并引用每个选择器$(this)
$("[class^='video-link']").click(function() {
$(this).addClass('show');
});
>您可以使用$(this)
在事件回调中引用当前(目标)元素:
$('.video-link').click(function() {
$(this).addClass('show');
});
您可以使用
function(numberOfElements){
for(var i = 1; i <= numberOfElements; i++){
$('.video-link' + i).on('click', function(){
$(this).addClass('show');
});
}
}
还应使用 .on
绑定事件而不是 .click
。 如果在初始页面加载后生成元素并使用 .click
,则不会注册事件处理程序。
相关文章:
- 创建一组元素JointJS
- 如何检查焦点是否离开了一组元素
- 是否可以加快向DOM添加一组元素的速度
- 使用javascript在一组元素上切换类
- 如何使用jQuery查找一组元素的父元素
- 为什么 .data() 适用于一组元素,但不适用于单个元素
- 如何从一组元素中获取 ID 并保存在数组中
- 使一组元素透明,但一个除外
- 当一组元素的所有元素都具有特定值时,如何隐藏表单元素
- 如何在一组元素上触发事件
- JQuery:用另一组元素替换一组元素的优雅方式
- 如何使用 jquery 隐藏下一组元素
- 使用 Raphael JS 一次缩放一组元素
- 循环遍历一组元素 jQuery
- 在没有循环的情况下测试一组元素之间的html5数据相等性
- 为一组元素逐个设置放置阴影的动画
- 当一组元素不总是在同一个父元素中时,如何找到下一个匹配的元素
- 如何在InDesign CS5 javascript中将一组元素锚定到特定的TextFrame
- 使用jQuery将一组元素中的每一个克隆到单独的目标元素中
- 使用jQuery计算一组元素的最大宽度