Javascript 无法使用Jquery在标记中动态添加类

Javascript 无法使用Jquery在标记中动态添加类,javascript,jquery,Javascript,Jquery,我需要一些帮助。我无法使用Jquery动态添加类。我在下面解释我的代码 $.each(obj.cid, function() { $("#ulCategory").append("<li><a href='javascript:void(0)' onclick='savesubcat("+this.id+","+this+")'>" + this.name +</li>"); }); function savesubcat(id,$this){

我需要一些帮助。我无法使用Jquery动态添加类。我在下面解释我的代码

$.each(obj.cid, function() {
      $("#ulCategory").append("<li><a href='javascript:void(0)' onclick='savesubcat("+this.id+","+this+")'>" + this.name +</li>");
});

function savesubcat(id,$this){
  $($this).addClass("active");
  $($this).siblings().removeClass('active');
}
$.each(obj.cid,function(){
$(“#ulCategory”)。追加(“
  • ”+this.name+
  • ”); }); 函数savesubcat(id$this){ $($this.addClass(“活动”); $($this.sides().removeClass('active'); }

    在这里,我需要在单击的锚标记上添加活动类,但以我的方式,它不是这样发生的。请帮助我。

    您的第一个问题是在函数调用中没有将字符串值用引号括起来。第二个问题是,从上下文来看,
    这是一个对象。将对象连接到字符串是行不通的如你所料

    要解决此问题,最好使用一个不引人注目的委托事件处理程序。这样,您就可以在处理程序函数中获得
    this
    引用,因此不需要传递它。您只需将对象的
    id
    放在
    data
    属性中,这样就可以在事件处理程序中读取它

    另请注意,
    将引用没有同级的
    a
    元素。要将类添加到其他
    a
    元素,您需要遍历DOM到父
    ul
    ,然后
    find()
    它们。尝试以下操作:

    试试这个:

    var obj={
    cid:[{
    id:‘abc’,
    姓名:“富”
    }, {
    id:'xyz',
    名称:“酒吧”
    }]
    };
    var li=$.map(obj.cid,函数(o){
    返回“
  • ”; }); $('#ulCategory')。追加(li.join('')。on('click','a',函数(e){ e、 预防默认值(); var$a=$(本); console.log($a.data('id')); $a.addClass('active')。最近的('ul')。查找('a')。不($a)。removeClass('active'); })
    .active{color:red;}
    
    
      当您有处理HTML的代码时,最好将所述HTML与JS代码一起显示。首先,您犯了一个语法错误,这可能会导致错误,$($this)是错误的。它应该是$this