zoukankan      html  css  js  c++  java
  • 类名的添加,修改及删除

                类名的添加,修改及删除

      attr()及addClass()

        addClass(class | fn) :为每个匹配的元素添加指定的类名。若要添加多个类名,请使用空格分开。为测试这两个方法添加类名的区别,我先写好了三个样式。

    .one {
        color: red;
    }
    .two {
        font-size: 200%;    
    }
    .three {
        text-transform: uppercase;
    }

        首先测试addClass()方法,代码:

    1 $('p').addClass('one two');
    2 $('button:contains("addClass")').click(function() {
    3     $('p').addClass('three');
    4 });

      测试前:  点击按钮后:

        由代码和测试结果我们可得出结论: ①addClass()确实可以为元素添加类名,当需添加多个类名时,使用空格分开(图1)。②当class属性已经存在类名时,使用addClass()并不会删除修改原来存在的类名,会在原来的基础上添加类名,组成新的词列表。(图2)

        attr(name | properties | key,value | fn) : 设置或返回被选元素的属性值。

        测试attr()方法,代码:

    1 $('div').attr('class', 'one');
    2 $('button:contains("attr")').click(function() {
    3     $('div').attr('class', 'two three');
    4 });

      测试前:    点击按钮后: 

        由代码和测试结果我们可得出结论: ①attr()方法可以为元素添加类名。(图1)。 ②当class属性已经存在类名时,使用attr()并不会保留原来存在类名,而将class值直接设置为新的词列表"two three"。同时我们发现attr()也支持同时添加多个类名(词列表)(图2)。因此若要保留"one"类名,只能$('div').attr('class', 'one two three')。

        另外提下css()方法,当初做项目的时候使用过css()给元素添加类名:$('section').css('class', 'two');  结果可想而是,一点用也没有。因此在这区分下attt()和css()的区别。attr()是获取/修改元素的属性(和html标签有关).而css()方法是获取/修改样式属性(和style有关)的。何为属性呢? 通常我们将id,src,alt,class称为属性,也即元素属性(想想attr不就是attribute的缩写吗)。样式如width,color等,可以使用.style.xxx表示(确实没有obj.style.class的写法,而是obj.className这种)。贴下别人的问答:地址

      HTML DOM  setAttribute()

        setAttribute()这个方法接受两个参数: 要设置的特性名和值,如果特性已经存在,setAttribute()会以指定的值替换现有的值;如果特性不存在,setAttribure()则创建该属性并设置相应的值。测试setAttribute()代码:

    1 var oSection = document.querySelector('section');
    2 var oBtn = document.querySelector('.btn');
    3 oSection.setAttribute('class', 'one');
    4 oBtn.onclick = function() {
    5     oSection.setAttribute('class', 'two three');    
    6 }    

      测试前:         点击按钮后:     

        由代码和测试结果我们可得出结论: ①setAttribute()方法可以添加类名(图1)。②当类名存在时,会以制定的值替换现有的值。(图2)。如要保留类名"one",则也许这么写: oSection.setAttribute('class', 'one two three');

      removeClass()

        既然可以在原来基础上追加类名,那么有在原来基础上删除类名的方法吗? 答案是有的。

        removeClass([class | fn]) :从所有匹配的元素中删除全部或者指定的类。

    1 $('button:contains("removeClass")').click(function() {
    2     //删除指定的类名“two”
    3     $('p').removeClass('two');
    4     // 无参数  默认删除所有的类名
    5     $('div').removeClass();
    6 });

        p元素和div元素都在原来测试后的基础上在调用removeClass()方法。

      测试后的p元素:     测试后的div元素: 

        经过调用removeClass()方法后,p元素删除了指定类名“two”,剩下类名"one three"。而div元素则被删除了全部的类名。

        若不想保存原来的类名(即属性值),可以使用以上除addClass()方法外的方法。

  • 相关阅读:
    jquery练习(赋予属性值)
    jquery练习
    jquery表单对象属性选择器
    jquery表单选择器
    jquery子元素选择器
    jquery属性选择器(同时匹配多个条件)
    jquery属性选择器
    jquery属性选择器(匹配具有指定属性的元素)
    jquery可见性选择器(综合)
    方法的递归
  • 原文地址:https://www.cnblogs.com/cleaverlove/p/6290779.html
Copyright © 2011-2022 走看看