Javascript 将class设置为selected<;李>;动态标记
我在尝试为Javascript 将class设置为selected<;李>;动态标记,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我在尝试为动态设置单击列表器时遇到了一些问题。以下是填充列表的代码: for(var i = 0; i < chatlist.length; i++){ $('<li class="contact"><div class="wrap"><div class="meta"><p class="name">' + contact + '</p><p class="preview">' + preview +
动态设置单击列表器时遇到了一些问题。以下是填充列表的代码:
for(var i = 0; i < chatlist.length; i++){
$('<li class="contact"><div class="wrap"><div class="meta"><p class="name">' + contact + '</p><p class="preview">' + preview + '</p></div></div></li>').appendTo($('#contacts ul'));
}
我正在使用。选择行时,我想将所选的
标记设置为
<li class = 'contact active'></li>
我设法获得了所选的行索引,但我不确定如何为所选的
设置HTML类。有什么想法吗?试试这段代码,它添加了活动类,我还添加了css来检查不同的
$(文档).ready(函数(){
$('.list li')。单击(函数(){
$('.list li').removeClass(“active”);//从所有li中删除活动类
$(this).addClass('active');//为单击li添加活动类
});
});代码>
.active{
颜色:红色;
}
李{
光标:指针;
}
- 测试1
- 测试2
- 测试3
- 测试4
- 测试5
- 测试6
- 测试7
在单击事件处理程序中,$(此)
将指向已单击的li
元素。因此,您应该能够像这样为其分配一个类:
$('#contacts').on('click', 'li', function() {
$(this).addClass("selected"); // Assign the class here
var index = $(this).index();
console.log(index);
});
我成功地获得了所选的行索引,但我不确定如何设置
所选
的HTML类。有什么想法吗
您只需单击事件本身上的addClass
$('#contacts').on('click', 'li', function() {
$( "#contacts li" ).removeClass( "active" ); //assuming that it has to be removed from other li's, else remove this line
$( this ).addClass( "active" );
});
您可以通过以下方式添加jquery逻辑:从所有li
联系人的id中删除active
类,然后将active
类添加到已单击的li
,您可以从li
的索引中获得该类,如:
var clickedLi = $('#contacts ul li')[index];
或者改用$(this)
。请检查所附的代码段
var chatlist=新数组(3);
var contact=‘contact’;
var preview=‘preview’;
对于(var i=0;i'+contact+'
'+preview+'
)。附录($('#contacts ul');
}
$('#contacts')。在('click','li',function()上{
var index=$(this.index();
$(“#联系人ul li”)。每个(函数(){
$(this.removeClass('active');
});
$(this.addClass('active');
});代码>
.active{
颜色:绿色;
}
您可以像这样添加活动类:
$(this).addClass('active');
你不能在
监听器中只$(this).addClass(“active”)
吗?嘿,关于如何仅将addClass()设置为第一个li项有什么想法吗?你可以使用:first
选择器。嘿,有没有办法根据索引而不是第一个索引将li设置为active类?是的,尝试eq
选择器。
$(this).addClass('active');