<!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() 的区别
代码执行效果
点击前:
第一个div:草莓图片 + "这里种植了一棵草莓"
第二个div:鱼图片 + "这里养殖了一条鱼"
点击"若干年后"按钮后:
第一个div:变为草莓1图片 + "这里长出了一片草莓"
第二个div:变为鱼1图片 + "这里的鱼没有了"
总结
这段代码通过jQuery实现了简单的交互效果:
使用选择器选中元素
绑定点击事件
使用
eq()和get()两种不同方式操作DOM元素动态更新页面内容,展现时间变化的概念
eq()更适合在jQuery环境中继续链式操作,而get()适合需要访问原生DOM属性或与其他原生JavaScript代码交互的场景。
eq()更适合在jQuery环境中继续链式操作。
什么是链式操作,举个例子
链式操作是jQuery的一项重要特性,它允许在单个语句中连续调用多个方法,而无需每次都重新指定选择器。
这种编程方式通过在每个操作之后返回jQuery对象,将多个方法连接在一起形成一个操作链。
链式操作的原理
jQuery之所以能实现链式调用,关键在于每个方法都通过return this返回调用对象本身。
这样,每次方法调用后返回的仍然是同一个jQuery对象,可以继续调用该对象上的其他方法。
链式操作示例
一个典型的链式操作示例如下:
$("div").eq(0).css("width", "200px").show();这段代码的执行流程是:
$("div")选中所有div元素.eq(0)获取第一个div元素,返回jQuery对象.css("width", "200px")设置宽度为200px,返回jQuery对象.show()显示该元素,返回jQuery对象
链式操作的优势
链式操作主要带来以下好处:
提高代码可读性:链式调用使代码更加简洁,易于阅读和维护
简化操作:将原本需要多行完成的操作用一行代码实现,使代码更紧凑
提升效率:避免了重复选择元素的操作
更多链式操作实例
另一个常见的链式操作是:
$("p").hide().addClass("myClass").slideDown();这个例子中,hide()方法隐藏<p>元素,然后addClass()方法添加类,最后slideDown()方法显示元素。
通过这种链式编程方式,开发者可以更优雅地编写jQuery代码,实现流畅的操作体验