jQuery笔记二——设置CSS样式与绑定事件

属性节点

  • 什么是属性节点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O7nV6Ags-1595157552308)(/Users/mac/Desktop/MarkDown /jQuery/笔记2/1.jpg)]

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

  • 如何操作属性节点?
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>属性节点</title>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function() {
            var span = document.getElementsByTagName("span")[0];
            span.setAttribute("name", "aniu");
            span.getAttribute("name");
        });
    </script>
</head>

<body>
    <span name=“it666”></span>
</body>

</html>

DOM元素.setAttribute("属性名称","值“);:设置属性节点的值。

DOM元素.getAttribute("属性名称");:获取属性节点的值。

  • 属性和属性节点区别?

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

attr()修改属性节点方法

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>attr</title>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function() {
            // attr()方法作用:获取或者设置属性节点的值
            // 传递一个参数代表获取属性节点的值(无论找到多少个元素,都只会返回第一个元素指定的属性节点的值),传递两个参数代表设置属性节点的值
            console.log($("span").attr("class"));//span1

            console.log($("span").attr("name", "aniu"));
            
            // removeAttr()作用:删除属性节点(删除多个属性节点,中间用空格隔开)
            $("span").removeAttr("class name");
        });
    </script>
</head>

<body>
    <span class="span1" name="it666"></span>
    <span class="span2" name="lz"></span>
</body>

</html>
  1. attr()方法作用:获取或者设置属性节点的值。传递一个参数代表获取属性节点的值(无论找到多少个元素,都只会返回第一个元素指定的属性节点的值),传递两个参数代表设置属性节点的值。
  2. removeAttr()作用:删除属性节点(删除多个属性节点,中间用空格隔开),会删除所有找到元素指定的属性节点。

prop()修改属性方法

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>prop</title>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function() {
            //prop()方法特点和attr()方法一样
            $("span").eq(0).prop("demo", "Aniu666");
            $("span").eq(1).prop("demo", "Aniu888");
            console.log($("span").prop("demo"));
            // removeProp()方法特点和removeAttr()方法一样
            $("span").removeProp("demo");
        });
    </script>
</head>

<body>
    <span class="span1" name="it666"></span>
    <span class="span2" name="lz"></span>
</body>

</html>
  1. prop()方法特点和attr()方法一样。
  2. removeProp()方法特点和removeAttr()方法一样。
  3. 注意点:prop()方法不仅能操纵属性,还能操作属性节点官方推荐在操作属性节点时,具有true和false两个属性的属性节点,如checked、selected或者disabled使用prop(),其他的使用attr()。

小练习

我们做一个简单的小练习。需要在文本框中输入图片地址,然后点击切换图片按钮就可以切换图片。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z7n8ov91-1595157552314)(/Users/mac/Desktop/MarkDown /jQuery/笔记2/2.gif)]

用到刚才所学习的attr()方法即可。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>attr小练习</title>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function() {
            var btn = document.getElementsByTagName("button")[0];
            btn.onclick = function() {
                var input = document.getElementsByTagName("input")[0];
                text = input.value;
                $("img").attr("src", text);
            }
        });
    </script>
</head>

<body>
    <input type="text">
    <button>切换图片</button><br>
    <img src="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" alt="">
</body>

</html>

类相关方法

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>类相关方法</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        .class1 {
            height: 100px;
            width: 100px;
            background-color: red;
        }
        
        .class2 {
            border: 5px solid pink;
        }
    </style>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function() {

            var btns = document.getElementsByTagName("button");

            btns[0].onclick = function() {
                // addClass()添加一个类
                $("div").addClass("class1 class2");
            }
            btns[1].onclick = function() {
                // removeClass()删除一个类
                $("div").removeClass("class2");
            }
            btns[2].onclick = function() {
                // toggleClass()切换类(有就删除,没有就添加)
                $("div").toggleClass("class1 class2");
            }
        });
    </script>
</head>

<body>
    <button>添加类</button>
    <button>删除类</button>
    <button>切换类</button>
    <div></div>
</body>

</html>
  1. addClasss()添加类,如果要添加多个,中间用空格隔开。
  2. removeClass()删除类,如果要删除多个,中间用空格隔开。
  3. toggleClass()切换类,有就删除,没有就添加。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XauvLeDy-1595157552316)(/Users/mac/Desktop/MarkDown /jQuery/笔记2/3.gif)]

文本值相关操作

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>文本值</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        div {
            height: 100px;
            width: 100px;
            border: 1px solid #000;
        }
    </style>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function() {
            var btns = document.getElementsByTagName("button");
            btns[0].onclick = function() {
                $("div").html("<p>我是p标签<span>我是span</span></p>"); //我是p标签我是span
            }
            btns[1].onclick = function() {
                console.log($("div").html()); //<p>我是p标签<span>我是span</span></p>
            }
            btns[2].onclick = function() {
                $("div").text("<p>我是p标签<span>我是span</span></p>"); //<p>我是p标签<span>我是span</span></p>
            }
            btns[3].onclick = function() {
                console.log($("div").text()); //<p>我是p标签<span>我是span</span></p>
            }
            btns[4].onclick = function() {
                $("input").val("请输入内容...");
            }
            btns[5].onclick = function() {
                console.log($("input").val()); //请输入内容...
            }
        });
    </script>
</head>

<body>
    <button>设置html</button>
    <button>获取html</button>
    <button>设置text</button>
    <button>获取text</button>
    <button>设置value</button>
    <button>获取value</button>
    <div></div>
    <input type="text">
</body>

</html>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u2nB0h9x-1595157552318)(/Users/mac/Desktop/MarkDown /jQuery/笔记2/4.gif)]

jQuery设置CSS样式

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>操作样式</title>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function() {
            // 方法一:逐行设置
            // $("div").css("width", "100px");
            // $("div").css("height", "100px");
            // $("div").css("background-color", "red");
            // 方法二:链式设置(建议不要超过三个,不然可阅读性较差)
            // $("div").css("width", "100px").css("height", "100px").css("background-color", "red");
            // 方法三:批量设置(推荐使用)
            $("div").css({
                width: "100px",
                height: "100px",
                background: "red"
            });
        });
    </script>
</head>

<body>
    <div></div>
</body>

</html>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gX40Sgfz-1595157552321)(/Users/mac/Desktop/MarkDown /jQuery/笔记2/5.jpg)]

还可以通过$("div").css();中输入一个参数来获取CSS样式。

尺寸和位置相关设置

  • 尺寸相关,获取与设置尺寸。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>操作样式</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        .father {
            position: relative;
            left: 50px;
            width: 200px;
            height: 200px;
            background-color: purple;
            border: 50px solid pink;
        }
        
        .son {
            position: absolute;
            top: 50px;
            left: 50px;
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function() {
            var btns = document.getElementsByTagName("button");
            // 监听获取
            btns[0].onclick = function() {
                    console.log($(".father").width());
                }
                // 监听设置
            btns[1].onclick = function() {
                $(".father").width("500px");
            }
        });
    </script>
</head>

<body>
    <div class="father">
        <div class="son"></div>
    </div>
    <button>获取</button>
    <button>设置</button>
</body>

</html>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-briK2UGY-1595157552323)(/Users/mac/Desktop/MarkDown /jQuery/笔记2/6.gif)]

  • 位置相关,获取与设置位置
    • offset()可以获取距离窗口位置。可设置。
    • position()可以获取距离定位元素位置。不可设置。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>操作样式</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        .father {
            position: relative;
            left: 50px;
            width: 200px;
            height: 200px;
            background-color: purple;
            border: 50px solid pink;
        }
        
        .son {
            position: absolute;
            top: 50px;
            left: 50px;
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function() {
            var btns = document.getElementsByTagName("button");
            // 监听获取
            btns[0].onclick = function() {
                    console.log($(".son").offset().left);
                    console.log($(".son").position().left);
                }
                // 监听设置
            btns[1].onclick = function() {
                $(".son").offset({
                    left: 10
                });
            }
        });
    </script>
</head>

<body>
    <div class="father">
        <div class="son"></div>
    </div>
    <button>获取</button>
    <button>设置</button>
</body>

</html>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jDvEvs9N-1595157552327)(/Users/mac/Desktop/MarkDown /jQuery/笔记2/7.gif)]

  • scrollTop与scrollLeft
// 设置
btns[0].onclick = function() {
	$(".scroll").scrollTop(300);
}
// 获取
btns[1].onclick = function() {
	console.log($(".scroll").scrollTop());

}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z5rKnC2g-1595157552328)(/Users/mac/Desktop/MarkDown /jQuery/笔记2/8.gif)]

  • 设置页面滚动条(考虑浏览器兼容性,使用一下方法)
 // 设置
 btns[0].onclick = function() {
 	$("html,body").scrollTop(300);
 }
 // 获取
 btns[1].onclick = function() {
	console.log($("html").scrollTop() + $("body").scrollTop());

}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fRibd2dQ-1595157552329)(/Users/mac/Desktop/MarkDown /jQuery/笔记2/9.gif)]

jQuery绑定事件

  • 两种绑定事件方式:
    • eventName(fn);:编码效率略高,部分事件jQuery没有实现,所以不能添加
    • on(eventName,fn);:编码效率略低,所有js事件都可以添加。
    • 注意:可以添加多个相同或者不同类型的事件,不会覆盖。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>事件绑定</title>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function() {
            $("button").click(function() {
                alert("hello lz");
            });
            $("button").on("click", function() {
                alert("ij6666");
            })
        });
    </script>
</head>

<body>
    <button>点击</button>
</body>

</html>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dBHM57Fq-1595157552330)(/Users/mac/Desktop/MarkDown /jQuery/笔记2/10.gif)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值