码迷,mamicode.com
首页 > Web开发 > 详细

jQuery属性操作

时间:2019-10-04 23:16:21      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:script   att   没有   结合   移除   数据   OLE   结果   rip   

1.添加/修改/获取属性 attr()

attr()方法其实是原生getAtrribute()和setAttribte()的结合体,语法上更加简洁。
它支持同时操作多个属性,只要将多个属性包装成对象传入即可

注意:它操作的是标签内的属性

<body>
    <div id="test">hello world</div>
</body>
<script>
    $(function(){
        var $div = $("div")
        // 添加class属性
        $div.attr("class","center")
        // 添加自定义属性
        $div.attr("xxx","abc")
        // 修改id属性的值
        $di.attr("id","box")
        // 获取属性值
        console.log($div.attr("id")) //box
    })
</script>

运行结果:

<div id="test" class="center" xxx="abc">hello world</div>

同时操作多个属性

<body>
    <div id="test">hello world</div>
</body>
<script>
    $(function(){
        var $div = $("div")
        // 同时操作多个属性
        $div.attr({
            "id":"box",
            "class":"center",
            "xxx":"abc"
        })
    })
</script>

运行结果与上面的一致:

<div id="box" class="center" xxx="abc">hello world</div>

2.移除属性 removeAttr()

可以移除一个或多个属性,每个属性用 空格 隔开

<body>
    <div id="box" class="center" xxx="abc">hello world</div>
</body>
<script>
    $(function(){
        var $div = $("div")
        // 移除一个属性
        $div.removeAttr("xxx")
        // 移除多个属性
        $div.removeAttr("id class")
    })
</script>

运行结果:

<div>hello world</div>

3.prop()

prop()可以读取/修改/添加 元素的属性,相当于原生js的点语法

注意:严格的说,attr()操作标签属性,而prop()操作js内存中元素的属性,在操作元素原生的属性(id,class,title)时,他们作用时一样的,或者说他们数据共通。
但是在操作多选,复选框的 checked 属性时,还是有区别的。因为标签的 checked 只是在初始化时有用,其他时候只是摆设。真正生效的是内存中的元素属性,所以此时只能用prop()

基本用法:

<script>
    $(function(){
        var $div = $("div")
        // 修改id属性
        $div.prop("id","box")
        // 添加元素属性
        $div.prop("className","center")
        // 添加自定义属性(无效)
        $div.prop("yyy","def")
        console.log($div.prop("yyy")) // def

        // 同时操作多个属性
        $div.prop({
            title:"this is a title",
            color:"red"
        })
        console.log($div) //没有看见 yyy 和 color 属性
    })
</script>

运行结果:

<div id="box" class="center" title="this is a title">hello world</div>

通过prop()设置的自定义属性既不在div标签中,也没有挂载到$div对象中。其实它挂载到了原生Dom中了

var div = document.querySelector("div")
console.log(div.yyy,div.color) // def red

4.removeProp() 移除属性

只是将属性值设为 undefined

// 移除xxx自定义属性
$div.removeProp("xxx")
console.log($div.prop("xxx"))//undefined
// 移除title属性
$div.removeProp("title")

运行结果:

<div id="box" class="center" title="undefined">hello world</div>

jQuery属性操作

标签:script   att   没有   结合   移除   数据   OLE   结果   rip   

原文地址:https://www.cnblogs.com/OrochiZ-/p/11623480.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!