JQuery中样式标签的处理

原创 2016年05月31日 18:17:17

增加样式标签

JQuery中增加样式使用.addClass(className)方法

通过动态改变类名(class),可以让其修改元素呈现出不同的效果。在HTML结构中里,多个class以空格分隔,当一个节点(或称为一个标签)含有多个class时,DOM元素响应的className属性获取的不是class名称的数组,而是一个含有空格的字符串,这就使得多class操作变得很麻烦。同样的jQuery开发者也考虑到这种情况,增加了一个.addClass()方法,用于动态增加class类名

.addClass( className )方法简介:
1..addClass( className ) : 为每个匹配元素所要增加的一个或多个样式名
2..addClass( function(index, currentClass) ) : 这个函数返回一个或更多用空格隔开的要增加的样式名

注意
.addClass()方法不会替换一个样式类名。它只是简单的添加一个样式类名到元素上

简单的举个栗子:在p元素增加一个newClass的样式,处理如下:

<p class="orgClass">
$("p").addClass("newClass")

那么p元素的class实际上是 class=”orgClass newClass”样式只会在原本的类上继续增加,通过空格分隔。

实练操作:

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title></title>
    <style>
    .left,
    .right {
        width: 300px;
        height: 120px;
    }

    .left div,
    .right div {
        width: 100px;
        height: 90px;
        padding: 5px;
        margin: 5px;
        float: left;
        border: 1px solid #ccc;
    }

    .newClass{
        background: #bbffaa;
    }

    .imoocClass{
        background: red;
    }

    </style>
    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>

<body>
    <h2>.addClss()方法</h2>
    <div class="left">
        <div class="aaron">
            <p>newClass</p>
        </div>
        <div class="aaron">
            <p>newClass</p>
        </div>
    </div>
    <div class="right">
        <div class="aa bb imooc">
            <article>
                <p>imoocClass</p>
            </article>
        </div>
        <div class="bb cc imooc ">
            <article>
                <p>imoocClass</p>
            </article>
        </div>
    </div>

    <script type="text/javascript"> 
        //class=left下div元素增加一个新的样式,增加背景颜色
        $('.left div').addClass('newClass')
    </script>

    <script type="text/javascript"> 

        //通过className(fucntion)方法
        //这个函数返回一个或更多用空格隔开的要增加的样式名。
        //接收index 参数表示元素在匹配集合中的索引位置和html 参数表示元素上原来的 HTML 内容

        //找到所有的div,然后通过addClass设置颜色,根据返回的className的判断,
        $("div").addClass(function(index,className) {

            //找到类名中包含了imooc的元素
            if(-1 !== className.indexOf('imooc')){
                //this指向匹配元素集合中的当前元素
                $(this).addClass('imoocClass')
            }
        });
    </script>



</body>

</html>

稍稍提及一下indexOf的用法:indexOf()是用来查找字符串的。str.indexof(string)的意思是在str中查找存在string出现的位置,从0开始。如果不存在则返回-1。

删除样式标签

jQuery通过.addClass()方法可以很便捷的增加样式。如果需要样式之间的切换,同样jQuery提供了一个很方便的.removeClass(),它的作用是从匹配的元素中删除全部或者指定的class

.removeClass( )方法简介:
1..removeClass( [className ] ):每个匹配元素移除的一个或多个用空格隔开的样式名
2..removeClass( function(index, class) ) : 一个函数,返回一个或多个将要被移除的样式名

注意

如果一个样式类名作为一个参数,只有这样式类会被从匹配的元素集合中删除 。 如果没有样式名作为参数,那么所有的样式类将被移除。

看例子:

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title></title>
    <style>
    .left,
    .right {
        width: 300px;
        height: 120px;
    }

    .left div,
    .right div {
        width: 100px;
        height: 90px;
        padding: 5px;
        margin: 5px;
        float: left;
        border: 1px solid #ccc;
    }

    .newClass{
        background: #bbffaa;
    }

    .imoocClass{
        background: red;
    }

    </style>
    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>

<body>
    <h2>.removeClass()方法</h2>
    <div class="left">
        <div class="aaron newClass">
            <p>newClass</p>
        </div>
        <div class="aaron newClass">
            <p>newClass</p>
        </div>
    </div>
    <div class="right">
        <div class="aa bb imoocClass">
            <article>
                <p>imoocClass</p>
            </article>
        </div>
        <div>
            <article>
                <p>imoocClass</p>
            </article>
        </div>
    </div>

    <script type="text/javascript"> 
        //class=left下div元素删除newClass样式
        $('.left div').removeClass('newClass')
    </script>


    <script type="text/javascript"> 
        //.removeClass() 方法允许我们指定一个函数作为参数,返回将要被删除的样式
        $('.right > div:first').removeClass(function(index,className){

            //className = aa bb imoocClass
            //把div的className赋给下一个兄弟元素div上作为它的class
            $(this).next().addClass(className)

            //删除自己本身的imoocClass
            return 'imoocClass'
        })


    </script>



</body>

</html>

执行结果:

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

jquery动态添加带有样式的HTML标签元素

jquery动态添加带有样式的HTML标签元素
  • u012724595
  • u012724595
  • 2017年09月14日 11:06
  • 639

JqueryMobile 动态添加内容, 样式没有按照JM的样式展现问题

jquerymobile 动态添加块之后, 样式不是JM内定的样式, 看文档发现需要将这块预处理一下(自己理解), 原语句:The create event is suited for enhan...
  • yubinding
  • yubinding
  • 2015年07月09日 15:21
  • 646

jQuery中改变页面样式

元素属性和Dom属性  对于下面这样一个标签元素: img id='img' src="1.jpg" alt='1' class="imgs">img>  我们通常将id...
  • w20101310
  • w20101310
  • 2015年06月15日 18:11
  • 699

jQuery切换标签选中样式的简洁写法【实例】

相信很多人在写‘切换标签选中样式’这块功能的时候,不是一开始就能想到很简洁的写法吧,我是写php的,但是很多时候也需要自己写前端jQuery,现在想想,当时真是写的五花八门,乱七八糟。 现在介绍一个...
  • zhumengstyle
  • zhumengstyle
  • 2017年08月01日 11:46
  • 388

Jquery 选择指定位置的指定样式及参考文档

需求说明,需要取得样式“XXX”的第一个位置,和最后一个位置 用()
  • huaishuming
  • huaishuming
  • 2014年06月13日 11:28
  • 7077

获取页面元素的style中的样式

页面中的元素定义的style可以设置style属性,也完全可以通过设置class来进行css样式定义,那么我们想读取其中的style怎么办呢? style type="text/css">....cl...
  • bazhuang
  • bazhuang
  • 2007年11月24日 14:40
  • 296

用jquery+css控制表格样式

表格效果如下:点滑过时变色  代码: "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-...
  • xochenlin
  • xochenlin
  • 2009年01月07日 09:46
  • 6730

jquery选择器扩展之样式选择器

jquery中提供了丰富多样的选择器,利用这些选择器我们可以完成大多数任务,但是喜欢思考的我们总得找点事,提问时间: 1.如何选择所有字体颜色为红色的元素 2.如何选择出背景颜色为为白色的元素 3.如...
  • duwen90
  • duwen90
  • 2016年01月23日 18:05
  • 1505

jQuery 操作类样式

1、addClass()向匹配的元素添加指定的类名   addClass() 方法向被选元素添加一个或多个类。该方法不会移除已存在的 class 属性,仅仅添加一个或多个 class 属性。提示:如...
  • qq_27626333
  • qq_27626333
  • 2016年07月17日 00:01
  • 1030

jquery控制table中的input样式,巧妙利用标签元素,隐藏input边框

直接进入主题:jsp页面源代码 .ge_table{ width:100%;} .ge_table td{ height:44px; line-height:26px;} .hide_border{...
  • u010953431
  • u010953431
  • 2013年12月04日 13:54
  • 4582
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JQuery中样式标签的处理
举报原因:
原因补充:

(最多只允许输入30个字)