jQuery入门-细节讲解2

目录

val()方法

html方法与text方法

width方法与height方法

scrollTop()与scrollLeft()

on注册事件

事件解绑和触发事件

jQuery事件对象


val()方法

val()方法:获取匹配元素集中第一个元素的当前值,或设置每个匹配元素的值。

val()方法用于设置和获取表单元素的值,例如input、textarea的值

//设置值

$("#name").val(“张三”);

//获取值

$("#name").val();

下面看示例

示例3-1

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>val()方法</title>
</head>
<body>
<input type="text" value="我是input"/>
</body>
<script src="jQuery/jquery-1.12.4.js"></script>
<script>
    $(function () {
        console.log($("input").val());
        $("input").val("改变input元素的值");
    })
</script>
</html>

运行效果如图所示:

html方法与text方法

html():获取匹配元素集中第一个元素的HTML内容,或设置每个匹配元素的HTML内容。

text():获取匹配元素集中的每个元素的组合文本内容,包括它们的后代,或者设置匹配元素的文本内容。

html方法相当于innerHTML text方法相当于innerText

//设置内容

$(“div”).html(“<span>这是一段内容</span>”);

//获取内容

$(“div”).html()

//设置内容

$(“div”).text(“<span>这是一段内容</span>”);

//获取内容

$(“div”).text()

区别:html方法会识别html标签,text方法会那内容直接当成字符串,并不会识别html标签。

下面看示例

示例3-2

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>html方法和text方法</title>
</head>
<body>
<div><p>我是P1</p></div>
<div><p>我是P2</p></div>
<p id="p3">我是P3</p>
<p id="p4">我是P4</p>
</body>
<script src="jQuery/jquery-1.12.4.js"></script>
<script>
    $(function () {
        console.log($("div").eq(0).html());
        console.log($("div").eq(1).text());

        $("#p3").html("<h1>我是标题1</h1>");
        $("#p4").text("<h1>我是标题2</h1>");
    })
</script>
</html>

运行效果如图所示:

 

width方法与height方法

设置或者获取高度

//带参数表示设置高度
$("img").height(200);
//不带参数获取高度
$("img").height();

示例3-3

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>width和height方法</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: red;
            padding: 10px;
            border: 10px solid #000;
            margin: 10px;
        }
    </style>
</head>
<body>
<div></div>
</body>
<script src="jQuery/jquery-1.12.4.js"></script>
<script>
    $(function () {
        //获取div的宽度和高度
        console.log($("div").css("width"));
        console.log($("div").css("height"));
    });
</script>
</html>

 

运行结果如图所示:

 

获取网页的可视区宽高

//获取可视区宽度$(window).width();//获取可视区高度$(window).height();

resize():将事件处理程序绑定到“调整大小”JavaScript事件,或在元素上触发该事件。

示例3-4

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>width和height方法</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: red;
            padding: 10px;
            border: 10px solid #000;
            margin: 10px;
        }
    </style>
</head>
<body>
<div></div>
</body>
<script src="jQuery/jquery-1.12.4.js"></script>
<script>
    $(function () {
        // 需要获取页面可视区的宽度和高度
        $(window).resize(function () {
            console.log($(window).width());
            console.log($(window).height());
        });
    });
</script>
</html>

运行效果如图所示:

当然还有一些其他的方法,类似width()和height()方法的。这些方法可以将padding、border等计算进去

例如:

        console.log($("div").width());//width
        console.log($("div").innerWidth());//padding+width
        console.log($("div").outerWidth());//padding+width+border
        console.log($("div").outerWidth(true));//padding+width+border+margin

 

scrollTop()与scrollLeft()

设置或者获取垂直滚动条的位置

//获取页面被卷曲的高度$(window).scrollTop();
//获取页面被卷曲的宽度$(window).scrollLeft();

下面看示例

示例3-5:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>scrollTop与scrollLeft</title>
    <style>
        body {
            height: 4000px;
            width: 4000px;
        }
    </style>
</head>
<body>
<div></div>
</body>
<script src="jQuery/jquery-1.12.4.js"></script>
<script>
    $(function () {
        $(window).scroll(function () {
            console.log($(window).scrollTop());
            console.log($(window).scrollLeft());
        });

    });
</script>

</html>

运行效果如图所示:

可以看到,当我们改变页面被卷曲的高度或宽度时,$(window).scrollTop() 或者$(window).scrollLeft() 能够获取到相应的值 

 

on注册事件

jQuery1.7之后,jQueryon统一了所有事件的处理方法。

最现代的方式,兼容zepto(移动端类似jQuery的一个库),强烈建议使用。

 

on注册简单事件

// 表示给$(selector)绑定事件,并且由自己触发,不支持动态绑定。

$(selector).on( "click", function() {});

 

on注册委托事件

// 表示给$(selector)绑定代理事件,当必须是它的内部元素span才能触发这个事件,支持动态绑定

$(selector).on( "click",“span”, function() {});

 

on注册事件的语法:

// 第一个参数:events,绑定事件的名称可以是由空格分隔的多个事件(标准事件或者自定义事件)

// 第二个参数:selector, 执行事件的后代元素(可选),如果没有后代元素,那么事件将有自己执行。

// 第三个参数:data,传递给处理函数的数据,事件触发的时候通过event.data来使用(不常使用)

// 第四个参数:handler,事件处理函数

$(selector).on(events[,selector][,data],handler);

 

下面看示例

示例3-6:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>on注册事件的两种方式</title>
</head>
<body>
<button>新增</button>
<div>
    <p>111111</p>
    <p>111111</p>
    <p>111111</p>
    <p>111111</p>
    <p>111111</p>
</div>
</body>
<script src="jQuery/jquery-1.12.4.js"></script>
<script>
    $(function () {
        
        $("button").on("click",function () {
            $("<p>新增的P元素</p>").appendTo("div");
        });
        
        //on不传选择器的参数
        //on注册简单事件
        $("p").on("click",function () {
            alert("点击P标签");
        });

        //on传选择器参数
        //on注册委托事件
        $("div").on("click","p",function () {
            alert("哈哈");
        });


    });
</script>

</html>

 

运行效果如图所示:

 

事件解绑和触发事件

unbind方式(不用)

$(selector).unbind(); //解绑所有的事件$(selector).unbind("click"); //解绑指定的事件

undelegate方式(不用)

$( selector ).undelegate(); //解绑所有的delegate事件$( selector).undelegate( “click” ); //解绑所有的click事件

off方式(推荐)

// 解绑匹配元素的所有事件$(selector).off();// 解绑匹配元素的所有click事件$(selector).off("click");
//触发 click事件$(selector).click();$(selector).trigger("click");//推荐

下面看示例

示例3-7:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件解绑</title>
</head>
<body>
<button>触发</button>
<div>
    <p>111111</p>
    <p>111111</p>
    <p>111111</p>
    <p>111111</p>
    <p>111111</p>
</div>
</body>
<script src="jQuery/jquery-1.12.4.js"></script>
<script>
    $(function () {

        $("p").on("click", function () {
            alert("点击P标签");
        });

        //移除事件
        // $("p").off("click");

        //toggle:切换  trigger:触发
        $("button").on("click", function () {
            // $("p").click();
            $("p").trigger("click");
        });

    });
</script>

</html>

运行效果如图所示:

jQuery事件对象

jQuery事件对象其实就是js事件对象的一个封装,处理了兼容性。

//screenXscreenY    对应屏幕最左上角的值//clientX和clientY    距离页面左上角的位置(忽视滚动条)//pageX和pageY    距离页面最顶部的左上角的位置(会计算滚动条的距离)//event.keyCode    按下的键盘代码//event.data    存储绑定事件时传递的附加数据//event.stopPropagation()    阻止事件冒泡行为//event.preventDefault()    阻止浏览器默认行为//return false:既能阻止事件冒泡,又能阻止浏览器默认行为。

下面看示例

示例3-8:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jQuery事件对象</title>
</head>
<body>
<div>
我是DIV
</div>
</body>
<script src="jQuery/jquery-1.12.4.js"></script>
<script>
    $(function () {
        
        //on(types, selector, data, callback)
        //使用on方法的时候,可以给data参数传一个值,可以在事件里面通过e.data获取到。
        $("div").on("click", 100,function (e) {
            console.log("这是data的值" + e.data);
        });

    });
</script>

</html>

 

运行效果如图所示:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值