jQuery基础&选择器

jQuery基础&选择器

一、概述

  • jquery是js的框架

  • jquery和js的相互转换? js转换为jquery : $(js对象) jquery转换为js : jquery对象[0] / jquery对象.get(0)
    js和jquery对象的方法是不通用的!!!

  • jquery如何获取/设置值 : .val(内容)

  • jquery如何获取/设置内容: .html(内容) .text(内容)

  • jquery操作属性 : attr("属性名") attr("属性名","属性值”) removeAttr("属性名")

  • jquery如何操作样式: css("样式名") css("样式名","样式值")

  • jquery的选择器:比js更方便的选择标签

    基本选择器、层次选择器、过滤器、表单选择器

二、js对象和jquery对象的相互转换

js对象和jquery对象是不同的,使用不同的属性和方法;但是他们又是可以相互转换的!!!

  • js对象转换为jquery对象 $(js对象)
  • jquery对象转换为js对象 jquery对象[0] jquery对象.get(0)
<head>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function(){
            //id选择器
            var name1 = document.getElementById("username");
            var name = $("#username");

            console.log(name1.value); //js对象
            console.log(name.val()); //jq对象
            console.log($(name1).val()); //js对象转化为jq对象
            console.log(name.get(0).value); //jq对象转化为js对象
        })
    </script>
</head>
<body>
    <input type="" name="" id="username" value="jack" />
</body>

三、jquery的几种用法

1、获取/设置值的用法

val(): 获取value值 
val(内容):设置value值

2、使用jquery获取/设置标签内容的值

html(): 获取内容值,包含标签 
html(内容):设置内容值     
text(): 获取内容值,不包含标签 
text(内容):设置内容值

3、操作标签属性

1、获取属性内容 attr("属性名"):
2、设置属性 attr("属性名","属性值"):
3、设置多个属性:attr({                
    "属性名":"属性值",                
    "属性名1":"属性值1",                
    "属性名2":"属性值2"                
}) 
4、移除属性 removeAttr("属性名"): 
<head>
    <title>控制div块的显示和隐藏</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
    <style type="text/css">
        div{
            width: 100px;
            height: 100px;
            text-align: center;
        }
        #div1{background-color: yellow;}
        #div2{background-color: aqua;}
        #div3{background-color: greenyellow;}
        .hide{
            /* color: red; */
            /* none:隐藏 。block*/
            display: none;
        }
    </style>
    <script type="text/javascript">
        $(function(){
            var show = $("#show");
            var hide = $("#hide");
            var div1 = $("#div1");
            var div2 = $("#div2");
            show.click(function(){
                div1.removeAttr("class");
            })
            hide.click(function(){
                div1.attr("class","hide");
            })
        })
    </script>
</head>
<body>
    <button id="show">显示</button>
    <button id="hide">隐藏</button>
    <div id="div1" class="">python</div>
    <div id="div2">java</div>
    <div id="div3">html</div>
</body>

4、操作css样式

.css("样式名");       获取某个样式的值 
.css("样式名","值");  设置某个样式的
<head>
    <meta charset="utf-8">
    <title>图片的展示</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
    <style type="text/css">
        div{
            width: 100px;
            height: 100px;
            text-align: center;
        }
        #div1{background-color: yellow;}
        #div2{background-color: aqua;}
        #div3{background-color: greenyellow;}

        .hide{
            /* color: red; */
            /* none:隐藏 。block*/
            display: none;
        }

    </style>
    <script type="text/javascript">
        $(function(){
            var show = $("#show");
            var hide = $("#hide");
            var div1 = $("#div1");
            var div2 = $("#div2");
            show.click(function(){
                div1.removeAttr("class");
            })
            hide.click(function(){
                div1.attr("class","hide");
            })

        })
    </script>
</head>
<body>
    <button id="show">显示</button>
    <button id="hide">隐藏</button>
    <div id="div1" class="">python</div>
    <div id="div2">java</div>
    <div id="div3">html</div>
</body>
<head>
    <meta charset="utf-8">
    <title></title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
    <style type="text/css">
        img{
            height: 300px;
            weight: 300px;
        }
    </style>
    <script type="text/javascript">
        $(function(){
            //获取元素
            var title = $("#title");
            var image = $("#image");
            var pre = $("#pre");
            var next = $("#next");
            //图片编号(一共3张)
            var index = 2;

            pre.click(function(){
                image.attr("src","img/"+index+".jpg");
                title.text(image.attr("src").substr(4,5)); //stringObject.substr(start,length)
                //if(index=1) index = 4; =是赋值,==是判断
                if(index==1) index = 4;
                index--;

            })
            next.click(function(){
                image.attr("src","img/"+index+".jpg");
                title.text(image.attr("src").substr(4,5));
                if(index==3) index = 0;
                index++;

            })
        })
    </script>
</head>
<body>
    <h3 id="title">图片展示</h3>
    <p><img id="image" src="img/1.jpg" /></p>
    <p>
        <button type="button" id="pre">上一个</button>
        <button type="button" id="next">下一个</button>
    </p>
</body>

四、jquery选择器

1、基本选择器

基本选择器包括标签选择器、类选择器、ID选择器、并集选择器、交集选择器和全局选择器

2、层次选择器

<head>
    <meta charset="utf-8">
    <title></title>
    <script src="js/jquery-1.12.4.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function() {
            //div1下的所有p
            console.log($("#div1 p")); //p1-p5 ; 
            //子选择器
            console.log($("#div1>p"));//p1-p4
            //相邻元素选择器
            console.log($("#p1+p"));//p2(与p1相邻的下一个是p2)
            //同辈元素选择器
            console.log($("#p1~p")); //p2-p4
        })
    </script>
</head>
<body>
    <h1>层次选择器</h1>
    <div id="div1" style="border: 3px solid red;width: 500px;height: 500px;">
        我是id="div1"的div
        <p id="p1" style="border: 3px solid green;width: 251px;">
            我是id="p1"的p
        </p>
        <p id="p2" style="border: 3px solid green;width: 251px;">
            我是id="p2"的p
        </p>
        <p id="p3" style="border: 3px solid green;width: 251px;">
            我是id="p3"的p 
        </p>
        <p id="p4" style="border: 3px solid green;width: 251px;">
            我是id="p4"的p
        </p>
        <div id="div2" style="border: 3px solid yellow;width: 400px;">
            我是id="div2"的div
            <p id="p5" style="border: 3px solid pink;width: 251px;">
                我是id="p5"的p
            </p>
        </div>
    </div>
</body>

3、过滤选择器

过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪类选择器语法 相同,都以一个 :冒号开头。
按照不同的过滤规则,过滤选择器可以分为基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤 和表单对象属性过滤选择器。

	<head>
        <meta charset="utf-8">
        <title>过滤选择器</title>
        <script src="js/jquery-1.12.4.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(function() {
                console.log($("li:first").text()); //西游记
                console.log($("li:last").text()); //三国演义

                //:eq(index):表示选取索引等于index的元素,索引从0开始
                console.log($("li:eq(1)").text()); //水浒传
                //:gt(index):表示选取索引大于index的元素,索引从0开始
                console.log($("li:gt(1)").text()); //红楼梦 三国演义
                //:lt(index):表示选取索引小于index的元素,索引从0开始
                console.log($("li:lt(1)").text()); //西游记


                //even:表示选取索引是偶数的元素,索引从0开始,看到的效果是选择了奇数行
                console.log($("li:even").text()); //西游记 红楼梦
                //odd:表示选取索引是奇数的元素,索引从0开始,看到的效果是选择了偶数行
                console.log($("li:odd").text()); //水浒传 三国演义

            })
        </script>
</head>
<body>
    <ul>
        <li>西游记</li>
        <li>水浒传</li>
        <li>红楼梦</li>
        <li>三国演义</li>
    </ul>
</body>

案例:控制灯泡


五、文档处理

六、遍历

1

<script type="text/javascript">
    $(function(){
        var lis = $("li");
        //this DOM对象
        //$(this) jQuery对象
        lis.each(function(){
            console.log(this.innerText);
            console.log($(this).text()); //两个输出相同
        });
        console.log("------------");
        //element DOM对象
        lis.each(function(index, element){
            console.log(index+" "+element.innerText);
        })
    });
</script>

<body>
    <ul id="ul">
        <li>西游记</li>
        <li>水浒传</li>
        <li>红楼梦</li>
        <li>三国演义</li>
    </ul>
</body>

七、GET 和 POST 方法的区别

1、发送的数据数量

在 GET 中,只能发送有限数量的数据,因为数据是在 URL 中发送的。

在 POST 中,可以发送大量的数据,因为数据是在正文主体中发送的。

2、安全性

GET 方法发送的数据不受保护,因为数据在 URL 栏中公开,这增加了漏洞和黑客攻击的风险。

POST 方法发送的数据是安全的,因为数据未在 URL 栏中公开,还可以在其中使用多种编码技术,这使其具有弹性。

3、加入书签中

GET 查询的结果可以加入书签中,因为它以 URL 的形式存在;而 POST 查询的结果无法加入书签中。

4、编码

在表单中使用 GET 方法时,数据类型中只接受 ASCII 字符。

在表单提交时,POST 方法不绑定表单数据类型,并允许二进制和 ASCII 字符。

5、可变大小

GET 方法中的可变大小约为 2000 个字符。

POST 方法最多允许 8 Mb 的可变大小。

6、缓存

GET 方法的数据是可缓存的,而 POST 方法的数据是无法缓存的。

7、主要作用

GET 方法主要用于获取信息。而 POST 方法主要用于更新数据。

八、jquery-Ajax

九、form表单序列化

1.serialize()方法

  格式:var data = $("#form").serialize();

  功能:将表单内容序列化成一个字符串

  这样在ajax提交表单数据时,就不用一一列举出每一个参数。只需将data参数设置为 $("#form").serialize() 即可。

2.serializeArray()方法

  格式:var jsonData = $("#form").serializeArray();

  功能:将页面表单序列化成一个JSON结构的对象。注意不是JSON字符串。

  比如,[{"name":"lihui", "age":"20"},{...}] 获取数据为 jsonData[0].name

<form action="" id="form">
    用户名:<input name="name" type="text" /><br />
    密 码:<input name="pass" type="text" /><br />
</form>
<input type="button" id="sub" value="提交" /> <br />
<p id="result"></p>

<script>
    $(function () {
        $("#sub").click(function () {
            var user = $("#form").serialize();

            $.ajax({
		type: "post",
		url: "user/login",
		data:user,
		success: function(data) {
		    if (data.trim()=="success"){
                        location.href = "index.html"
                    }else {
			alert("用户名或密码错误");
                    }
		}
	     });	

        });
    });
</script>

表单序列化参考:https://www.cnblogs.com/blueskycc/articles/5531561.html

jQuery基础&选择器

上一篇:汇编语言之屏幕字符显示


下一篇:JAVA的交集、差集、并集 整理