我有一个场景,我需要在将其更改为其他内容之前跟踪类名。我打算为元素添加一个新属性并为其分配类名。我怎样才能做到这一点?
这是元素
<td id = "tds1" class="myclass" ></td>
我正在尝试这样的事情。
$("#tds1").attr("baseClassName": function () {
var classname = $(this).class;
return classname + "base";
});
我需要像这样形成元素
<td id = "tds1" class="myclass" baseclassName="myclassbase" ></td>
答案 0 :(得分:2)
你很亲密。正确的代码如下所示:
$('#tds1').attr('baseClassName', function() {
var classname = this.className;
return classname + 'base';
});
变化:
this
而不是$(this)
。前者是DOM对象;后者是一个jQuery对象DOM对象可以完成我们需要做的所有事情。this.className
获取class
属性。注意大写N
以及我们获取DOM对象的属性而不是jQuery选择的事实。否则,这绝对是解决这个问题的正确方法。我遇到的一个问题是它是否必要。可能是jQuery.fn.data
做了你需要的,或者可能是另一个功能。我不明白你为什么要在元素的属性中复制信息。
答案 1 :(得分:1)
有点简洁的选择:
$('#tds1').attr('baseclassname', function() {
return $(this).attr('class') + 'base';
});
使用jQuery $(...)表示法将创建一个jQuery对象,这意味着您需要使用jQuery方法(在本例中为.attr())来获取类值。
希望有帮助...