jQuery学习

本文深入浅出地介绍了jQuery的基本概念,包括其作为JavaScript框架的角色、DOM操作、选择器的使用、事件处理及AJAX应用。通过实例展示了如何利用jQuery简化网页开发,实现动态效果和数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:博客内容并不是那么全面,了解更多请点击这里

jQuery入门

  1. 什么是jQuery?
    jQuery可以说是Javascript的一个框架,也可以说是JavaScript的函数库,封装了大量的方法
  2. JQuery和DOM的要点
    jQuery和DOM对象不可以直接调用进行使用,但是可以通过内部的机制进行对象之间的转换
  3. 导入jQuery库(jquery-1.12.4.js)
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.12.4.js"></script>
  1. jQuery的使用(三种方式)
    注意:为方便使用,$符号是jQuery中代替jQuery对象的符号
<script type="text/javascript">
	// 第一种
	$(function(){
		
	});
	// 第二种
	jQuery(function(){
		
	});
	// 第三种
	window.jQuery(function(){
		
	});
</script>
  1. dom对象和jQuery对象的相互转换
<script type="text/javascript">
	<!-- dom转jQuery对象 -->
	$(function(){
		// 得到dom对象
		var dom_uname = document.getElementById("username");
		alert(dom_uname.value);
		// 转换
		var jquery_uname = $(dom_uname);
		alert(jquery_uname.val());
	});
</script>
<script type="text/javascript">
	<!-- jQuery转dom对象 -->
	$(function(){
		// 得到jQuery对象
		var jquery_uname = $('#username');
		alert(jquery_uname);//[object Object]
		alert(jquery_uname.val());
		// 转换(jQuery对象实质为数组对象,存的是dom对象)
		var dom_uname = jquery_uname[0];
		alert(dom_uname.value);
	});
</script>

在这里插入图片描述
在这里插入图片描述

选择器

案例:

<body>
    <div> 
    	<input type="text" class="class_username" id="id_username" value="zhangsan"/>
    	<input type="text" class="class_username" id="id_username" value="lisi"/>
    </div>
    <input type="text" id="id_password" value="123456"/>
    <input type="text" id="id_password" value="654321"/>
</body>
  1. id选择器
<script type="text/javascript">
	$(function(){
		alert($('#id_username').length);// 1
		alert($('#id_username').val());// zhangsan	
	}); 
</script>
  1. class选择器
<script type="text/javascript">
	$(function(){
		alert($('.class_username').length);// 2
		// 注意:不指定取数组中那个数据,默认为第一个
		alert($('.class_username').val());// zhangsan
		// 取数组中的第二个数据,过程:jquery->dom->jquery
		alert($($('.class_username')[1]).val());
	}); 
</script>
  1. element选择器
<script type="text/javascript">
	$(function(){
		alert($('input').length);// 4
		alert($('input').val());// zhangsan
	}); 
</script>
  1. parent > child选择器
<script type="text/javascript">
	// 得到给定元素的所有给定子元素
	$(function(){
		alert($('div > .class_username').length);// 2
	}); 
</script>
  1. prev + next选择器
<script type="text/javascript">
	// 得到给定元素的下个元素
	$(function(){
		alert($('.class_username + #id_username').length);
		alert($('.class_username + #id_username').val());
		alert($('div + #id_password').val());
	}); 
</script>
  1. prev ~ siblings选择器
<script type="text/javascript">
	// 得到给定元素之后的所有指定元素
	$(function(){
		alert($('div ~ #id_password').length);// 2
	}); 
</script>
  1. 简单过滤选择器(如:odd,even,first,last等),有兴趣可以了解点击
    在这里插入图片描述
  2. 属性选择器
    案例:
<body>
	<div id="div1" class="class_div1">div1</div>
	<div id="div2">div2</div>
	<div id="div3">div3</div>
	<div class="div4">div4</div>
	<input type="text" id="input_letter"/>
</body>
	<script type="text/javascript">
		$(function(){
			// 查询所有含id属性的div标签
			alert($('div[id]').length);//3
			// 查询含有class属性且值等于指定值的div标签
			alert($("div[class='class_div1']").length);//1
			// 不等于
			alert($("div[class!='class_div1']").length);//3
			// 查询id值为div开头的标签
			alert($("div[id^='div']").length);//3
			// 查询id值以letter结尾的input标签
			alert($("input[id$='letter']").length);//1
			// 查询id值包含iv的div标签
			alert($("div[id*='iv']").length);//3
		});
	</script>

属性操作

  1. val属性操作
<body>
    <input type="text" class="acount" id="username" value="zhangsan"/><br>
    <input type="text" class="acount" id="password" value="123456"/>
</body>
<script type="text/javascript">
	$(function(){
		// 得到value值
		alert($('#username').val());
		// 设置值
		$('#username').val("lisi");
	});
</script>

在这里插入图片描述

  1. html&text属性
  <body>
    <div id="div1"><a href="#">div1</a></div>
  </body>
<script type="text/javascript">
	$(function(){
		// 得到值
		alert($("#div1").text());//div1
		alert($("#div1").html());//<a href="#">div1</a>
		// 设置值
		$("#div1").text("new set text");
		alert($("#div1").text());
		// 自动编译
		$("#div1").html("<font color='red'>new set html<font>");
		alert($("#div1").text());//new set html
		alert($("#div1").html());//<font color='red'>new set html<font>
	});
</script>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. class属性
<style type="text/css">
	.style1{
		background-color: red;
	}
	.style2{
		background-color: blue;
	}
	.style3{
		background-color: yellow;
	}
	.style4{
		color: white;
	}
</style>
  <body>
    <div id="div1">div1</div>
    <div id="div2">div2</div>
    <div id="div3">div3</div>
  </body>
<script type="text/javascript">
	$(function(){
		$('#div1').addClass('style1');
		// 添加不同的css
		$('#div2').addClass('style2 style4');
		$('#div3').addClass('style3');
		// 移除css
		$('#div2').removeClass('style2');
		// 若存在添加,不存在移除
		$('#div2').toggleClass('style2');
	});
</script>

在这里插入图片描述在这里插入图片描述

  1. attr属性
  <body>
    <a id="a0" href="https://www.google.com">this is google</a>
    <a id="a1">this is youtube</a>
    <a id="a2">this is baidu</a>
  </body>
<script type="text/javascript">
	$(function(){
		// 得到某个属性的值
		alert($('#a0').attr('href'));// https://www.google.com
		// 设置某个属性的值(可以设置多个属性值,用逗号分割每个属性)
		$('#a1').attr({href:'https://www.youtube.com/'});
		// 设置某个属性的值
		$('#a2').attr('href','https://www.baidu.com/');
	});
</script>

在这里插入图片描述

文档处理_1(元素内部)

案例:

  <body>
    <p style="color: red">文本</p>
    <div id="div1"></div>
    <div id="div2"></div>
    <div id="div3"></div>
    <div id="div4"></div>
  </body>
  1. append():向每个匹配的元素内部追加内容。
<script type="text/javascript">
	$(function(){
		<!-- 下面这些都是在元素内部进行操作中 -->
		// 向每个匹配的元素内部追加内容。
		$('#div1').append("div1");
		$('#div2').append("div2");
		$('#div3').append("div3");
		$('#div1').append("<a href='#'>我是div1后追加的链接</a>");
	});
</script>

在这里插入图片描述

  1. appendTo():把所有匹配的元素追加到另一个指定的元素元素集合中。
<script type="text/javascript">
	$(function(){
		<!-- 下面这些都是在元素内部进行操作中 -->
		// 向每个匹配的元素内部追加内容。
		$('#div1').append("div1");
		$('#div2').append("div2");
		$('#div3').append("div3");
		$('#div1').append("<a href='#'>我是div1后追加的链接</a>");
		// 把所有匹配的元素追加到另一个指定的元素元素集合中。
		$('p').appendTo('#div3');
	});
</script>

在这里插入图片描述

  1. prepend():向每个匹配的元素内部前置内容。
<script type="text/javascript">
	$(function(){
		<!-- 下面这些都是在元素内部进行操作中 -->
		// 向每个匹配的元素内部追加内容。
		$('#div1').append("div1");
		$('#div2').append("div2");
		$('#div3').append("div3");
		$('#div1').append("<a href='#'>我是div1后追加的链接</a>");
		// 把所有匹配的元素追加到另一个指定的元素元素集合中。
		$('p').appendTo('#div3');
		// 要插入到目标元素内部前端的内容
		$('#div1').prepend("我要加到div1前边<br>");
	});
</script>

在这里插入图片描述

  1. prependTo():把所有匹配的元素前置到另一个、指定的元素元素集合中。
<script type="text/javascript">
	$(function(){
		<!-- 下面这些都是在元素内部进行操作中 -->
		// 向每个匹配的元素内部追加内容。
		$('#div1').append("div1");
		$('#div2').append("div2");
		$('#div3').append("div3");
		$('#div1').append("<a href='#'>我是div1后追加的链接</a>");
		// 要插入到目标元素内部前端的内容
		$('#div1').prepend("我要加到div1前边<br>");
		// $(A).prepend(B)的操作,即不是把B前置到A中,而是把A前置到B中。
		$('p').prependTo('#div3');
	});
</script>

在这里插入图片描述

文档处理_2 (元素外部&其它)

案例:

  <body>
    <p style="color: red">文本</p>
    <div id="div1">div1</div>
    <div id="div2">div2</div>
    <div id="div3">div3</div>
    <div id="div4">div4</div>
  </body>
  1. after():在每个匹配的元素之后插入内容。
<script type="text/javascript">
	$(function(){
		$('#div1').after("div1之后添加的!");
	});
</script>

在这里插入图片描述

  1. before():在每个匹配的元素之前插入内容。
<script type="text/javascript">
	$(function()
		$('#div4').before("div4之前添加的!");
	});
</script>

在这里插入图片描述

  1. insertAfter():把所有匹配的元素插入到另一个、指定的元素元素集合的后面。
<script type="text/javascript">
	$(function(){
		$('#div1').after("div1之后添加的!");
		$('#div4').before("div4之前添加的!");
		// 将p标签添加到指定属性之后
		$('p').insertAfter('#div2');
	});
</script>

在这里插入图片描述

  1. insertBefore():把所有匹配的元素插入到另一个、指定的元素元素集合的前面。
<script type="text/javascript">
	$(function(){
		$('#div1').after("div1之后添加的!");
		$('#div4').before("div4之前添加的!");
		// 将p标签添加到指定属性之前
		$('p').insertBefore('#div2');
	});
</script>

在这里插入图片描述

  1. empty():删除匹配的元素集合中所有的子节点。
<script type="text/javascript">
	$(function(){
		$('p').empty();
	});
</script>

在这里插入图片描述

  1. remove():从DOM中删除所有匹配的元素。
<script type="text/javascript">
	$(function(){
		// 注意:p标签一同移除!!!
		$('p').appendTo('#div1');
		$("div[id='div1']").remove('#div1');
	});
</script>

在这里插入图片描述

事件

注:事件较多,此处不详细介绍,有兴趣了解的点击
在这里插入图片描述

AJAX

注:这里只演示jQuery封装的相对来说最底层的方法($.ajax),想了解封装的其它方法请点击
在这里插入图片描述
案例:

  <body>
    <form id="form1">
    	<input type="text" id="username" name="username"/><br>
    	<input type="text" id="password" name="password"/><br>
    	<input type="button" id="btn" value="login">
    </form>
  </body>
<script type="text/javascript">
	$(function(){
		$('#btn').bind('click', function(){
			// 获取表单数据
			var i = $('#form1').serializeArray();
			//alert(i);
			$.ajax({
				// 请求链接
				url: "user_login.action",
				// http方法
				type: "POST",
				// 期待服务器返回的数据类型
				dataType: "json",
				data: i,
				// 异步请求
				async: true,
				// 成功后回调的方法
				success: function(data){
					alert(data.msg);
				}, 
				// 失败后回调的方法(服务器故障)
				error: function(data){
					al
				}	
			});
		});
	});
</script>  
package tqb.web.action;

import java.util.HashMap;
import java.util.Map;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

import net.sf.json.JSONObject;

/**
 * 用户登录Demo
 * @author tqb
 *
 */
public class DemoAction extends ActionSupport {

	public String login() throws Exception {
		Map<String, String> map = new HashMap<String, String>();
		try {
			// 模拟服务器发生故障!!!
			// System.out.println(1/0);
			String username = ServletActionContext.getRequest().getParameter("username");
			String password = ServletActionContext.getRequest().getParameter("password");
			if (username != null && password != null && username.trim().equals("admin")
					&& password.trim().equals("admin")) {
				map.put("msg", "恭喜你登录成功!");
				JSONObject jsonObject = JSONObject.fromObject(map);
				ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
				ServletActionContext.getResponse().getWriter().print(jsonObject);
			} else {
				map.put("msg", "抱歉,登录失败!");
				JSONObject jsonObject = JSONObject.fromObject(map);
				ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
				ServletActionContext.getResponse().getWriter().print(jsonObject);
			}
		} catch (Exception e) {
			map.put("msg", "抱歉,服务器发生故障!");
			JSONObject jsonObject = JSONObject.fromObject(map);
			ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
			ServletActionContext.getResponse().getWriter().print(jsonObject);
			e.printStackTrace();
		}
		return NONE;
	}

}
内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值