正在添加动态第二类Jquery
Adding dynamic second class Jquery
我试图在jQuery中使用for循环将第二个类添加到一组按钮中,第二个类别设置为当前迭代器(I)的编号。每个按钮的第一个类被分配给"用户"。我希望每个按钮都有一个动态的第二类,这样当单击时,我可以使用它的第二个类作为索引来访问对象中的特定键。
我遇到的问题是,每个按钮的第二个类都设置为0。"users"是一个长度为4的数组,因此按钮的第二类应该是0,1,2,3。
$(document).ready(function(){
for(var i = 0; i < users.length; i++) {
var $currentUser = $('<button class="users '+ i +'"></button>');
$currentUser.text(users[i]);
$currentUser.appendTo('.userList');
}
$(".users").click(function() {
alert($(".users").attr('class').split());
// Alert returns "users 0" for each button.
});
});
底部的警报现在只是一个占位符,用于检查类是否设置正确。谢谢
将代码更改为以下内容。单击元素时,将$(".users")
更改为$(this)
。
$(".users").attr('class')
总是返回所有按钮元素。
$(".users").click(function() {
alert($(this).attr('class').split());
});
当在一组元素上使用.attr('class')这样的getter方法时,它将返回该集中第一个元素的值。当您说$('.users')
时,它将返回类用户的所有元素。
在您的情况下,您希望引用单击的按钮,该按钮在单击处理程序中以this
的形式提供,因此您可以
$(document).ready(function() {
var users = ['u1', 'u2', 'u3']
for (var i = 0; i < users.length; i++) {
var $currentUser = $('<button class="users ' + i + '"></button>');
$currentUser.text(users[i]);
$currentUser.appendTo('.userList');
}
$(".users").click(function() {
alert(this.className.split(/'s+/));
alert(this.classList); //for ie 10+
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="userList"></div>
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用jquery在填充自动完成的值后使文本框只读
- jQuery:循环一个具有不同超时值的循环
- 用程序搜索JQuery数据表中的文本
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- jQuery匹配JSON对象的部分文本
- Jquery POST未填充数组
- JQuery使计数器每次更改时都会增加
- 如何在Angular2中使用jQuery插件
- 提高JQuery的性能
- 无法在通过jQuery的ajax加载的页面中执行javascript
- JQuery合并了keyup和focusout两个函数
- 如何使用jQuery选择下拉列表的值
- 将PHP变量传递给jQuery时遇到问题
- jQuery UI自动完成突然停止工作
- 剑道网格jQuery动画()问题
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- jquery点击函数select&取消选择
- 正在添加动态第二类Jquery