1

当我使用 jQuery .attr('class') 时,我得到了'class1 class2 class3',它们应该是单独的类,我如何选择其中一个类,例如我想更改 class1 上的 .css,我将如何遍历返回的类名,这些是我必须拆分的字符串,还是这些对象?谢谢!

顺便说一句,我的 html 看起来像这样:

<td class ="class1 class2 class3">

我通过在返回的 .attr('class') 上使用 .spilt 让它工作。我的目标是获得第二堂课,并在上面做一些 .css() 。

4

6 回答 6

4

classor属性在className单个字符串中返回以空格分隔的类名列表。如果要手动操作该属性,则必须自己手动将字符串解析为生成的类名。这是一个字符串,而不是单个对象。

现在,幸运的是,当您使用 jQuery 时,您很少需要自己动手。如果您想添加、删除或更改单个类名,您可以使用这些 jQuery 方法的组合,它们将为您完成所有解析:

.hasClass(classname)
.replaceClass(oldName, newName)
.removeClass(classname)
.addClass(classname)

要删除一个类并添加一个单独的类,像这样将两个函数链接在一起并不少见。

x$.removeClass("foo").addClass("bar");

如果您真的只想在选择器中使用类名,那么您根本不必担心对象上有多少其他类名,因为 jQuery 内置的选择器库将为您处理所有这些。例如:

$(".myClassName").css("color", "red");

将查找在 className 属性中具有任何位置的所有对象,myClassName并将指定的 CSS 应用于这些对象。

于 2012-04-27T01:17:16.160 回答
2

您可以使用 jquery类方法(addClass、removeClass、hasClass、toggleClass)来操作类

于 2012-04-27T01:14:06.850 回答
1

使用类选择器并让 jQuery 为您完成工作:

$('td.class1').css();
于 2012-04-27T01:10:16.377 回答
0

Javascript

$(document).ready(function() {
    alert('Class 1 = ' + $('#test').attr("class").split(" ")[0]);
    alert('Class 2 = ' + $('#test').attr("class").split(" ")[1]);
    alert('Class 3 = ' + $('#test').attr("class").split(" ")[2]);
})

html

<div id="test" class="class1 class2 class3"></div>

现场脚本:http: //jsfiddle.net/7ZDP4/

于 2012-04-27T01:12:39.123 回答
0
$('td.class1').css('background','red');
$('td.class2').css('background','blue');

编辑,给定一个对象,您还可以使用:

if ( $(this).hasClass('class1') ){ /* do this */  } else {  }
于 2012-04-27T01:13:47.803 回答
-1

我发现最简单的方法是使用 attr“href”作为单独的实体而不是使用类。

<td class="class1 class2" href="WhatYouWantToGrab" ></td>

然后在 jQuery 中你会这样做

    $('.class1.class2').click(function() {
    var yourVariable = $(this).attr('href');

});

希望这可以帮助。

于 2012-04-27T01:15:04.823 回答