jQuery--属性操作与CSS相关

    技术2022-07-11  74

    属性操作

    属性和属性节点
    1.什么是属性?

    对象身上保存的变量就是属性

    2.如何操作属性?

    对象.属性名称 = 值 对象.属性名称 对象[“属性名称”] = 值 对象[“属性名称”]

    $(function () { function Person() { } var p = new Person() // p.name = "lnj" p["name"] = "zs" // console.log(p.name) console.log(p["name"]) })
    3.什么是属性节点?

    在编写HTML代码时,在HTML标签中添加的属性就是属性节点 在浏览器中找到span这个DOM元素之后, 展开看到的都是属性 在attributes属性中保存的所有内容都是属性节点

    4.如何操作属性节点?

    DOM元素.setAttribute(“属性名称”, “值”) DOM元素.getAttribute(“属性名称”)

    $(function () { var span = document.getElementsByTagName("span")[0] span.setAttribute("name", "lnj") console.log(span.getAttribute("name")) })
    5.属性和属性节点有什么区别?

    任何对象都有属性, 但是只有DOM对象才有属性节点

    attr方法和prop方法
    arrt方法

    attr(name|pro|key,val|fn)

    作用: 获取或者设置属性节点的值

    可以传递一个参数, 也可以传递两个参数如果传递一个参数, 代表获取属性节点的值如果传递两个参数, 代表设置属性节点的值

    如果是获取:无论找到多少个元素, 都只会返回第一个元素指定的属性节点的值

    如果是设置:找到多少个元素就会设置多少个元素

    如果是设置: 如果设置的属性节点不存在, 那么系统会自动新增

    $(function () { $("span").attr("class", "box") })

    removeAttr(name)

    删除属性节点

    会删除所有找到元素指定的属性节点 $(function () { $("span").removeAttr("class name") })
    prop方法

    prop方法

    特点和attr方法一致

    $(function () { $("span").eq(0).prop("demo", "it666") $("span").eq(1).prop("demo", "lnj") console.log($("span").prop("demo")) })

    removeProp方法

    特点和removeAttr方法一致

    $(function () { $("span").removeProp("demo") })

    prop方法不仅能够操作属性, 他还能操作属性节点

    官方推荐在操作属性节点时,具有 true 和 false 两个属性的属性节点,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()

    $(function () { // console.log($("span").prop("class")) // $("span").prop("class", "box") console.log($("input").prop("checked"))// true / false console.log($("input").attr("checked"))// checked / undefined })
    Class操作
    addClass(class|fn)

    作用: 添加一个类

    如果要添加多个, 多个类名之间用空格隔开即可

    $(function () { var btns = document.getElementsByTagName("button") btns[0].onclick = function () { // $("div").addClass("class1") $("div").addClass("class1 class2") } })
    removeClass([class|fn])

    作用: 删除一个类

    如果想删除多个, 多个类名之间用空格隔开即可

    $(function () { var btns = document.getElementsByTagName("button") btns[0].onclick = function () { // $("div").addClass("class1") $("div").addClass("class1 class2") } })
    toggleClass(class|fn[,sw])

    作用: 切换类

    有就删除, 没有就添加

    $(function () { var btns = document.getElementsByTagName("button") btns[2].onclick = function () { $("div").toggleClass("class2 class1") } })
    代码/文本/值操作
    html([val|fn])

    和原生JS中的innerHTML一模一样

    $(function () { var btns = document.getElementsByTagName("button") btns[0].onclick = function () { $("div").html("<p>我是段落<span>我是span</span></p>") } btns[1].onclick = function () { console.log($("div").html()) } })
    text([val|fn])

    和原生JS中的innerText一模一样

    $(function () { var btns = document.getElementsByTagName("button") btns[2].onclick = function () { $("div").text("<p>我是段落<span>我是span</span></p>") } btns[3].onclick = function () { console.log($("div").text()) } })
    val([val|fn|arr])
    $(function () { var btns = document.getElementsByTagName("button") btns[4].onclick = function () { $("input").val("请输入内容") } btns[5].onclick = function () { console.log($("input").val()) } })

    CSS相关

    操作CSS
    逐个设置
    $(function () { $("div").css("width", "100px") $("div").css("height", "100px") $("div").css("background", "red") })
    链式设置

    链式操作如果大于3步, 建议分开

    $(function () { $("div").css("width", "100px").css("height", "100px").css("background", "blue") })
    批量设置
    $(function () { $("div").css({ width: "100px", height: "100px", background: "yellow" }) })
    获取CSS样式值
    $(function () { console.log($("div").css("width")) console.log($("div").css("height")) console.log($("div").css("background")) })
    位置和尺寸
    监听获取

    offset([coordinates])

    作用: 获取元素距离窗口的偏移位

    position()

    作用: 获取元素距离定位元素的偏移位

    监听设置

    position方法只能获取不能设置

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> *{ margin: 0; padding: 0; } .father{ width: 200px; height: 200px; background: red; border: 50px solid #000; margin-left: 50px; position: relative; } .son{ width: 100px; height: 100px; background: blue; position: absolute; left: 50px; top: 50px; } </style> <script src="js/jquery-1.12.4.js"></script> <script> $(function () { // 编写jQuery相关代码 var btns = document.getElementsByTagName("button") // 监听获取 btns[0].onclick = function () { // 获取元素的宽度 // console.log($(".father").width())//200 // offset([coordinates]) // 作用: 获取元素距离窗口的偏移位 // console.log($(".son").offset().left)//150 // position() // 作用: 获取元素距离定位元素的偏移位 console.log($(".son").position().left)//50 } // 监听设置 btns[1].onclick = function () { // 设置元素的宽度 // $(".father").width("500px") // $(".son").offset({ // left: 10 // }) // 注意点: position方法只能获取不能设置 // $(".son").position({ // left: 10 // }) $(".son").css({ left: "10px" }) } }) </script> </head> <body> <div class="father"> <div class="son"></div> </div> <button>监听获取</button> <button>监听设置</button> </body> </html>
    scrollTop方法
    监听设置

    获取滚动的偏移位

    console.log($(".scroll").scrollTop())

    获取网页滚动的偏移位

    为了保证浏览器的兼容, 获取网页滚动的偏移位需要按照如下写法

    console.log($("body").scrollTop()+$("html").scrollTop())
    监听设置

    设置滚动的偏移位

    $(".scroll").scrollTop(300)

    设置网页滚动偏移位

    为了保证浏览器的兼容, 设置网页滚动偏移位的时候必须按照如下写法

    $("html,body").scrollTop(300) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> *{ margin: 0; padding: 0; } .scroll{ width: 100px; height: 200px; border: 1px solid #000; overflow: auto; } </style> <script src="js/jquery-1.12.4.js"></script> <script> $(function () { // 编写jQuery相关代码 var btns = document.getElementsByTagName("button") // 监听获取 btns[0].onclick = function () { // 获取滚动的偏移位 // console.log($(".scroll").scrollTop()) // 获取网页滚动的偏移位 // 注意点: 为了保证浏览器的兼容, 获取网页滚动的偏移位需要按照如下写法 console.log($("body").scrollTop()+$("html").scrollTop()) } btns[1].onclick = function () { // 设置滚动的偏移位 $(".scroll").scrollTop(300) // 设置网页滚动偏移位 // 注意点: 为了保证浏览器的兼容, 设置网页滚动偏移位的时候必须按照如下写法 $("html,body").scrollTop(300) } }) </script> </head> <body> <div class="scroll">我是div我是div我是div我是div我是div我是div我是div 我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div 我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div </div> <button>获取</button> <button>设置</button> </body> </html>
    Processed: 0.012, SQL: 9