Javascript 无法使用Jquery在标记中动态添加类
我需要一些帮助。我无法使用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){
$.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