Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将class设置为selected<;李>;动态标记_Javascript_Jquery_Html_Css - Fatal编程技术网

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');