您好!欢迎访问家园网-www.jy.wang!

家园网

元素选择器

网络 作者:本站 点击:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
<title>元素选择器的实例</title>
<style type="text/css">
img{
    border:1px solid #777;
}
div{
    padding:5px;
    font-size:12px;
}   
</style>
<script type="text/javascript" src="JS/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $("input[type='button']").click(function(){         //为按钮绑定单击事件
            $("div").eq(0).html("<img src='images/strawberry1.jpg'/>这里长出了一片草莓");    //获取第一个div元素
            $("div").get(1).innerHTML="<img src='images/fish1.jpg'/>这里的鱼没有了";   //获取第二个div元素
        });
    });
</script>
</head>
<body>
<div><img src="images/strawberry.jpg"/>这里种植了一棵草莓</div>
<div><img src="images/fish.jpg"/>这里养殖了一条鱼</div>
<input type="button" value="若干年后" />
</body>
</html>


讲一下这一段代码,一步一步讲解,讲明白。另外这里的eq(0)和get(1)是干啥的?不明白

我来为您详细讲解这段代码,特别是 eq(0) 和 get(1) 的区别。

代码整体功能

这是一个展示"时间变化"效果的页面,点击按钮后,两个div中的内容会发生变化,模拟若干年后的场景。

代码逐步解析

1. 页面结构部分

<div><img src="images/strawberry.jpg"/>这里种植了一棵草莓</div>
<div><img src="images/fish.jpg"/>这里养殖了一条鱼</div>
<input type="button" value="若干年后" />
  • 第一个div:显示草莓图片和文字"这里种植了一棵草莓"

  • 第二个div:显示鱼图片和文字"这里养殖了一条鱼"

  • 按钮:文字为"若干年后",用于触发变化

2. jQuery代码部分

事件绑定

$("input[type='button']").click(function(){

选中所有type为button的input元素,并绑定点击事件。

核心操作 - 重点讲解 eq(0) 和 get(1)

$("div").eq(0).html(...)

  • $("div"):选中页面中所有的div元素

  • .eq(0):‌返回jQuery对象‌,表示第一个div元素(索引从0开始)

  • .html(...):使用jQuery的html方法设置内容

  • 效果:将第一个div的内容改为新的图片和文字

$("div").get(1).innerHTML = ...

  • $("div"):选中页面中所有的div元素

  • .get(1):‌返回原生DOM元素‌,表示第二个div元素

  • .innerHTML:使用原生JavaScript的innerHTML属性设置内容

  • 效果:将第二个div的内容改为新的图片和文字

eq() vs get() 的区别

特性eq(index)get(index)
返回值jQuery对象原生DOM元素
后续操作使用jQuery方法使用原生JavaScript属性/方法
链式调用支持不支持
索引范围0开始0开始

代码执行效果

点击前:

  • 第一个div:草莓图片 + "这里种植了一棵草莓"

  • 第二个div:鱼图片 + "这里养殖了一条鱼"

点击"若干年后"按钮后:

  • 第一个div:变为草莓1图片 + "这里长出了一片草莓"

  • 第二个div:变为鱼1图片 + "这里的鱼没有了"

总结

这段代码通过jQuery实现了简单的交互效果:

  1. 使用选择器选中元素

  2. 绑定点击事件

  3. 使用eq()get()两种不同方式操作DOM元素

  4. 动态更新页面内容,展现时间变化的概念

eq()更适合在jQuery环境中继续链式操作,而get()适合需要访问原生DOM属性或与其他原生JavaScript代码交互的场景。


eq()更适合在jQuery环境中继续链式操作。

什么是链式操作,举个例子

























链式操作是jQuery的一项重要特性,它允许在单个语句中连续调用多个方法,而无需每次都重新指定选择器。

这种编程方式通过在每个操作之后返回jQuery对象,将多个方法连接在一起形成一个操作链。

链式操作的原理

jQuery之所以能实现链式调用,关键在于每个方法都通过return this返回调用对象本身。

这样,每次方法调用后返回的仍然是同一个jQuery对象,可以继续调用该对象上的其他方法。

链式操作示例

一个典型的链式操作示例如下:

$("div").eq(0).css("width", "200px").show();

这段代码的执行流程是:

  1. $("div")选中所有div元素

  2. .eq(0)获取第一个div元素,返回jQuery对象

  3. .css("width", "200px")设置宽度为200px,返回jQuery对象

  4. .show()显示该元素,返回jQuery对象

链式操作的优势

链式操作主要带来以下好处:

  • 提高代码可读性‌:链式调用使代码更加简洁,易于阅读和维护

  • 简化操作‌:将原本需要多行完成的操作用一行代码实现,使代码更紧凑

  • 提升效率‌:避免了重复选择元素的操作

更多链式操作实例

另一个常见的链式操作是:

$("p").hide().addClass("myClass").slideDown();

这个例子中,hide()方法隐藏<p>元素,然后addClass()方法添加类,最后slideDown()方法显示元素。

通过这种链式编程方式,开发者可以更优雅地编写jQuery代码,实现流畅的操作体验

标签: