04-jQuery的属性操作

jquery的属性操作模块分为四个部分:html属性操作,dom属性操作,类样式操作和值操作

  • html属性操作:是对html文档中的属性进行读取,设置和移除操作。比如attr()、removeAttr()
  • DOM属性操作:对DOM元素的属性进行读取,设置和移除操作。比如prop()、removeProp()
  • 类样式操作:是指对DOM属性className进行添加,移除操作。比如addClass()、removeClass()、toggleClass()
  • 值操作:是对DOM属性value进行读取和设置操作。比如html()、text()、val()

attr()    设置属性值或者 返回被选元素的属性值

       //获取值:attr()设置一个属性值的时候 只是获取值
        var id = $('div').attr('id')
        console.log(id)
        var cla = $('div').attr('class')
        console.log(cla)
        //设置值
        //1.设置一个值 设置div的class为box
        $('div').attr('class','box')
        //2.设置多个值,参数为对象,键值对存储
        $('div').attr({name:'hahaha',class:'happy'})

 

removeAttr()    移除属性

//删除单个属性
$('#box').removeAttr('name');
$('#box').removeAttr('class');

//删除多个属性
$('#box').removeAttr('name class');

 

prop()  方法是  设置或返回被选元素的属性和值。

当该方法用于返回属性值时,则返回第一个匹配元素的值。

当该方法用于设置属性值时,则为匹配元素集合设置一个或多个属性/值对。

语法:

返回属性的值:

$(selector).prop(property)

设置属性和值:

$(selector).prop(property,value)

设置多个属性和值:

$(selector).prop({property:value, property:value,...})

 

关于attr()和prop()的区别

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body><input type="radio" id = "test" name="sex" checked/><input type="radio" id = "test2" name="sex"/>
    <button>提交</button>
    <script src="jquery.js"></script>
    <script type="text/javascript">
        $(function(){
            // 获取第一个input
            var el = $("input").first();
            // undefined  因为attr是获取的这个对象属性节点的值 , 很显然此时没有这个属性节点 , 自然输出undefined
            console.log(el.attr("style"));
            // 输出CssStyleDeclaration 对象 , 对于一个DOM对象 , 是具有原生的style对象属性的 ,所以输出了style对象
            console.log(el.prop("style"));
            console.log(document.getElementById("test").style);
            
            $("button").click(function () {
                alert(el.prop("checked") ? "":"");
            })



        })
    </script>

</body>
</html>

 

什么时候使用attr(),什么时候使用prop()

1 是有true,false两个属性使用prop();

2 其他则使用attr();

 

addClass(添加两个类名)

为每个匹配的元素添加指定的类名.

$("div").addClass("box"); // 追加一个类名到原有的类名

 

还可以为匹配的元素添加多个类名

$("div").addClass("box box2"); // 追加多个类名

 

remveClass

从所有匹配的元素中删除全部或者指定的类 

移除指定的类(一个或多个)

$("div").removeClass("box");

移除全部的类 

$("div").removeClass();

 

可以通过添加删除类名 , 来实现元素的显示隐藏

代码如下 : 

var tag  = false;
        $('span').click(function(){
            if(tag){
                $('span').removeClass('active')
                tag=false;
            }else{
                $('span').addClass('active')
                tag=true;
            }    
})

 

案例 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .active{
            color: red;
        }
    </style>
</head>
<body>
     <ul>
         <li class="item">张三</li>
         <li class="item">李四</li>
         <li class="item">王五</li>
     </ul>
     <script type="text/javascript" src="jquery-3.3.1.js"></script>
     <script type="text/javascript">
         $(function(){

             $('ul li').click(function(){
                 // this指的是当前点击的DOM对象 ,使用$(this)转化jquery对象
                 $(this).addClass('active').siblings('li').removeClass('active');
             })
         })
     </script>
    
</body>
</html>

 

toggleClass       如果存在(不存在)  就删除(添加) 一个类

语法 : 

toggleClass("box")

$("span").click(function(){
   // 动态的切换class类名为  active
   $(this).toggleClass("active")  
})

 

html    获 取值

语法 : 

html()  是获取选中标签元素中所有的内容 

$("#box").html();

 

设置值  :   设置该元素的所有内容  会替换掉标签中原来的内容 

$("#box").html("<a href = "https://www.baidu.com">百度一下</a>");

 

text   获取值 :   text()  获取匹配元素包含的文本内容

语法 : 

$("#box").text();

 

设置值 : 

设置该所有的文本内容 

$("#box").text("<a href = "https://www.baidu.com">百度一下</a>");

 

val  获取值 : val用于表单控件获取值 , 

比如 :  input , textarea  ,  select  等等 

 

设置值 : 

$("input").val("设置了表单控件中的值")

 

posted @ 2018-10-02 16:17  heshun  阅读(134)  评论(0编辑  收藏  举报