添加一个新属性并为其分配类名的值 - jQuery

时间:2014-05-14 19:30:58

标签: jquery

我有一个场景,我需要在将其更改为其他内容之前跟踪类名。我打算为元素添加一个新属性并为其分配类名。我怎样才能做到这一点?

这是元素

<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>

2 个答案:

答案 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())来获取类值。

希望有帮助...