.addClass()| jqueryAPI 2.2 中文手册- AspRain.cn 致力于Web开发技术翻译整理

jQuery API 2.2.0

.addClass()

分类:元素属性 | 操纵 > 类属性 | CSS

返回: jQuery

.addClass( className )

描述:把指定的样式类添加到匹配的元素集合中的每个元素上。

加入于: 1.0
.addClass( className )
  • className
    类型:String
    一个或更多用空隔分隔的类名,将要添加到每个匹配元素的样式类属性上。
加入于: 1.4
.addClass( function )
  • function
    类型:FunctionInteger index, String currentClassName ) => String
    一个函数,返回一个或更多的空格分隔的类名,用来添加到已有的类名上。检索集合中元素的索引位置以及已有的样式类名作为参数。在函数内部,this引用了集合中的当前元素。

注意这一点很重要:该方法不能替换掉一个样式类。它只是添加类名,把它追加到任何已经分配给元素的类名后面。

.addClass()方法操纵了选中的元素的属性className,而不是选中元素的元素属性class。一旦改变了该属性,浏览器会根据它更新元素属性。该行为暗示着该方法只对带HTML DOM语义的document起作用(例如,不能用在纯XML document上)。

可以向匹配的元素集合同时添加不止一个类名,只要用空格隔开,如下所示:

$( "p" ).addClass( "myClass yourClass" );

该方法常常与.removeClass()配合使用,从而转换元素的样式类,如下:

$( "p" ).removeClass( "myClass noClass" ).addClass( "yourClass" );

在这里,从所有的段落文本上删除了myClass类和noClass类,与此同时添加了yourClass类。

自从jQuery 1.4版,.addClass方法的参数可以接收一个函数。

$( "ul li" ).addClass(function( index ) {
  return "item-" + index;
});

给出一个带有两个<li>元素的无序列表,该示例向第一个<li>添加了类名“item-0”,向第二个<li>添加了类名“item-1”。

示例

向匹配的元素添加类名“selected”。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>addClass demo</title>
  <style>
  p {
    margin: 8px;
    font-size: 16px;
  }
  .selected {
    color: blue;
  }
  .highlight {
    background: yellow;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<p>Hello</p>
<p>and</p>
<p>Goodbye</p>
 
<script>
$( "p" ).last().addClass( "selected" );
</script>
 
</body>
</html>

演示结果

向匹配的元素添加类名“selected”和“highlight”。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>addClass demo</title>
  <style>
  p {
    margin: 8px;
    font-size: 16px;
  }
  .selected {
    color: red;
  }
  .highlight {
    background: yellow;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<p>Hello</p>
<p>and</p>
<p>Goodbye</p>
 
<script>
$( "p:last" ).addClass( "selected highlight" );
</script>
 
</body>
</html>

演示结果

.addClass()方法传入一个函数,以向一个已带有“red”类的div添加了个“green”类。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>addClass demo</title>
  <style>
  div {
    background: white;
  }
  .red {
    background: red;
  }
  .red.green {
    background: green;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
 <div>This div should be white</div>
 <div class="red">This div will be green because it now has the "green" and "red" classes.
   It would be red if the addClass function failed.</div>
 <div>This div should be white</div>
 <p>There are zero green divs</p>
 
<script>
$( "div" ).addClass(function( index, currentClass ) {
  var addedClass;
 
  if ( currentClass === "red" ) {
    addedClass = "green";
    $( "p" ).text( "There is one green div" );
  }
 
  return addedClass;
});
</script>
 
</body>
</html>

演示结果

如果网页上不能运行示例,请点击http://www.asprain.cn/jQueryAPI/addclass.htm查看示例。

如果你觉得本文档对你有用,欢迎给翻译作者支付宝打赏,支持翻译作者源源不断翻译更多有用的技术文档。