jQuery

jQuery

1.什么是jQuery

jQuery是一门轻量的、免费开源的JS函数库,可以极大的简化JS代码。

jQuery的核心思想:“写得更少,但做得更多”

轻量的:代码或项目对一门技术的依赖程度,依赖程度越低,这个技术越轻;反之,依赖程度越高,这个技术越重,推荐使用轻量级的技术。

2.jQuery的优势

1.可以极大的简化JS代码
2.可以象css选择器一样获取元素

$("#div1") -获取id为div1的元素

$(".c1") - 获取所有class值为c1的元素

$("#div span") - 获取id为div1元素内部所有的span元素

3.可以通过修改css样式控制页面效果
//为所有div设置背景(jquery方式)
$("div").css("background","red");
//为所有div设置背景(js方式)
var arr = Doucment.getElementsByTagName("div");
for(var i = 0;i < arr.length;i++){
    arr[i].style.background = "red";
}
4.可以兼容常用浏览器

3.jQuery引入

jQuery函数库其实就是一个JS文件(其中封装了很多js函数)

如果要使用jQuery,将jQuery函数库文件引入即可!

<!-- 引入jQuery库文件 -->
<script src="js/jquery-1.8.3.js"></script>

4.文档就绪事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>study</title>
</head>
<body>
    <h1 id="d1">引入jquery示例...</h1>
    <script>
        /*获取id为d1的元素的内容*/
        //1.获取id为d1的元素
        var h1 = document.getElementById("d1");
        //2.获取h1的内容
        alert(h1.innerHTML);
    </script>
    <script type="text/javascript" src="jquery/jquery-3.4.1.js"></script>
</body>
</html>

这里我们发现如果将js代码移到body的上方会在浏览器报错,这是因为在执行获取id为d1的元素时,h1元素还没有被浏览器加载到,所以获取不到h1元素

这里我们还有一种方法可以解决,将h1代码放到文档就绪事件函数中,文档就绪事件函数会在浏览器加载完成整个html代码后立即执行

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery</title>
    <script type="text/javascript" src="jquery/jquery-3.4.1.js"></script>
</head>
<body>
    <script>
        /* (jquery版)文档就绪事件函数:当浏览器加载完整个htm网页后 */
        $(function () {
            //1.获取id为d1的元素
            var h1 = document.getElementById("d1");
            //2.获取h1的内容(InnerHTML)
            alert(h1.innerHTML);
        })
    </script>
    <h1 id="d1">test jquery文档事件函数</h1>
    <!-- 完整写法为 $(document).ready(function(){}); -->
</body>
</html>

5.jQuery选择器

1.基本选择器

1.元素名(标签名)选择器

$(“div”) - 获取所有div元素

$(“span”) - 获取所有span元素

2.类选择器

$(".c1") - 获取所有class值为c1的元素

$(“div.c1”) - 获取所有class值为c1的div元素

3.ID选择器

$("#one") - 获取id为one的元素

2.层级选择器

1.后代选择器

$("#one span") - 匹配id为one的元素内部的所有的span元素

2.相邻兄弟选择器

$("#one+span") - 匹配id为one的元素后面紧邻的span兄弟元素

等价于:

$("#one").next(“span”) - 匹配id为one的元素后面紧邻的span兄弟元素

$("#one").prev(“span”) - 匹配id为one的元素前面紧邻的span兄弟元素

3.$("#two~div")

$("#one~span") - 匹配id为one的元素后面所有的span兄弟元素

$("#one").nextAll(“span”) - 匹配id为one的元素后面所有的span兄弟元素

$("#one").prevAll(“span”) – 匹配id为one的元素前面所有的span兄弟元素

$("#one").siblings(“span”) – 匹配id为one的元素前、后所有的span兄弟元素

3.基本过滤选择器

1.:first | :last

$(“div:first”) – 匹配所有div中的第一个div元素

$(“div:last”) – 匹配所有div中的最后一个div元素

  1. :eq(n)

    $(“div:eq(0)”) – 匹配所有div中的第一个div元素

    $(“div”).eq(0) – 匹配所有div中的第一个div元素

    $(“div:eq(-1)”) – 匹配所有div中的最后一个div元素

    $(“div”).eq(-1) – 匹配所有div中的最后一个div元素

4.综合案例
1.全选或全不选

html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <script type="text/javascript" src="jquery/jquery-3.4.1.js"></script>
    <script type="text/javascript" src="js/choice.js"></script>

    <title>test</title>
</head>
<body>
    爱好:<input type="checkbox" name="item" value="football"/>足球
        <input type="checkbox" name="item" value="moive"/>电影
        <input type="checkbox" name="item" value="car"/>赛车
        <input id="all" type="checkbox" onclick="checkAll()" value="chose">全选
</body>
</html>

js代码如下

/**
 * 练习:点击全选设置,商品所在的行全选或者全不选
 */
function checkAll() {
    //获取全选复选框的选中状态(选中或取消)
    var status = $("#all").prop("checked");
    console.log(status);
    //将全选框的状态设置给所有的复选框
    $("input[type='checkbox']").prop("checked",status);
}
/*
*为所有的普通复选框绑定点击事件,每次点击普通复选框都要
* 检查所有的普通复选框是否全都选中了,如果是,就选中全选
* 复选框,否则,就取消选中全选复选框
*/
$(function () {
    $("input[name='item']").click(function () {
        //获取所有普通复选框,并遍历其中的每一个复选框
        var isCheckAll = true;//假设所有的普通复选框都选择了
        $("input[name='item']").each(function () {
            //判断所有的普通复选框是否全部选中
            var status = $(this).prop("checked");
            if ( !status ){
                isCheckAll = false;//至少有一个没选中
            }
        });
        if (isCheckAll){
            //结束循环后,isCheckAll=true,所有普通复选框都选中了
            $("#all").prop("checked",true);
        }else {
            //isCheckAll=false,所有的普通复选框没有全部选中
            $("#all").prop("checked",false);
        }

    });
});
创建表格元素

html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="jquery/jquery-3.4.1.js"></script>
    <!--<script type="text/javascript" src="js/test.js"></script>-->
    <title>tsest</title>
</head>
<body>
    <button onclick="createTable3()">提交</button>
    <br>
    <input type="button" onclick="createTable()" value="创建"/>
    <br/><br/>
    <table>
        <tr>
            <td>good</td>
            <td>well</td>
        </tr>
        <tr>
            <td>fine</td>
            <td>wonderfull</td>
        </tr>
    </table>
    <br><br>
    <input type="button" onclick="createTable2()" value="创建"/>
    <br><br>
    <form action="get">
        行数<input type="text" id="rows"value="3" >
        列数<input type="text" id="cols"value="3">
        <input type="button" onclick="createTable3()" value="创建"/>
    </form>
    <script type="text/javascript" src="js/form.js"></script>
</body>

</html>

js代码如下:

//创建单行六列的表格
function createTable() {
    var $tab = $("<table></table>");
    var $tr = $("<tr></tr>");
    for (var i = 0; i < 6; i++){
        var $td = $("<td></td>");
        $td.html("我是td!")
        //将td添加到tr内部
        $tr.append($td);
    }
    //将tr添加到table内部
    $tab.append($tr);
    //将table添加到网页中
    $("body").append($tab);
}
//创建五行六列的表格
function createTable2() {
    var $tab = $("<table></table>");
    for (var i = 0;i < 5;i++){
        var $tr = $("<tr></tr>");
        for (var j = 0;j < 6;j++){
            var $td = $("<td></td>");
            $td.html(i+"行"+j+"列");
            $tr.append($td);
        }
        $tab.append($tr);
    }
    $("body").append($tab);
}
//创建指定行和指定列的表格
function createTable3() {
    //var rows = $("#rows").val();
    //var cols = $("#cols").val();
    var rows = document.getElementById("rows").value;
    console.log(rows);
    var cols = document.getElementById("cols").value;
    console.log(cols);
    var $tab = $("<table></table>");
    for (var i =0; i < rows; i++){
        var $tr = $("<tr></tr>");
        for (var j = 0; j < cols; j++){
            var $td = $("<td></td>");
            $td.html("我是td!");
            $tr.append($td);
        }
        $tab.append($tr);
    }
    $("body").append($tab);
}

6.总结

1.html元素操作

1.创建元素

$("

") – 创建一个包含内容的div元素,返回的是一个表示div元素的jquery对象

$(“

xxxxx
”) – 创建一个包含内容的div元素,返回的是一个表示div元素的jquery对象

2.添加子元素

p a r e n t . a p p e n d ( parent.append( parent.append(child) – 父元素调用方法添加子元素

$(“body”).append(“

新的
”) – 往body内部追加一个div元素

3.删除元素

$(“div”).remove() – 删除所有div元素

4.替换元素

$(“div”).replaceWith(“

替换后

”)
2.html元素内容和值操作

1.html()函数(类似于js中的innerHTML属性)

– 用于获取或设置元素的内容,比如为div,span,p,h1等元素设置内容

$(“div”).html() – 获取所有div中第一个div的内容

$(“div”).html(xxxx) – 为所有div设置内容

2.text()函数(类似于js中的innerText属性)

–用于获取或设置元素的文档内容

$(“div”).text() – 获取所有div中的所有文本内容

$(“div”).text(xxxx) – 为所有的div设置文本内容

3.val()函数(类似于js中的value属性)

–获取或设置表单项元素的value值(input/select/option/textarea)

$(“input”).val() --获取所有的input元素中的第一个input元素value值

$(“input”).val(值) – 为所有的Input元素设置value值

3.元素属性和css操作’

对这个html代码进行操作

1.prop()函数 – 用于获取或设置元素的属性值

$(“input[type=‘checkbox’]”).prop(“checked”) – 获取input复选框的选中状态, 返回true表示复选框为选中状态, 返回false表示复选框为取消选中状态

$(“input[type=‘checkbox’]”).prop(“checked”, true)-- 设置所匹配的复选框元素为选中状态

2.css()函数 – 用于获取或设置元素的css属性的值

$("#div1").css(“width”) – 获取id为div1元素的宽度

$("#div1").css(“width”,“200px”) – 设置id为div1元素的宽度为200px

$("#div1").css({

​ “width” : “200px”,

​ “height” : “150px”,

​ “border” : “5px solid red”,

​ “background” : “pink”

})

–设置id为div1元素的宽度为200px、高度为150px、边框以及背景颜色等样式

4.其他函数

1.show() – 设置元素由隐藏变为显示

hide() – 设置元素由显示变为隐藏

$(“div”).show() – 设置所有的div元素为显示

等价于:

$(“div”).css(“display”, “block”

$(“div”).hide() – 设置所有的div元素为隐藏

等价于:

$(“div”).css(“display”, “none”)

2.toggle()/slideToggle()

toggle() – 切换元素的显示状态, 如果元素是显示的, 则切换为隐藏, 否则切换为显示

slidToggle() --切换元素的显示状态, 如果元素是显示的, 则切换为隐藏, 否则切换为显示, 切换为显示为下拉状态, 隐藏为收缩状态.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值