入门JQuery

一、 jQuery 操作DOM

1.1 选择器

  • #id 选择器
  • element 选择器
  • .class 选择器
  • 层级选择器 (父子、兄弟等)

$("parent>child")

        parent元素中的指定child直接子元素

$("parent child")

        所有后代元素

$("prev + next")

        紧贴prev之后的元素

  • 伪类选择器 (:first)

:first/:last  -----  第一个/最后一个匹配的元素

:eq(N)  -----   匹配的索引为N的元素

:even/:odd  -----  奇数/偶数个元素

:checked -----  表单中所有勾选的元素

:disabled  -----  被禁用的元素

  • 属性选择器

属性选择器常用条件

1. =:等于/相等

2.  ^=: 以** 开始

3. $=: 以**结束

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>jQuery选择器的练习</title>
	<link rel="stylesheet" href="">
	<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
	<script type="text/javascript">
		// jQuery代码的内容
		// $(document).ready(function() {
		// 	// 根据ID
		// 	var username = $('#username');
		// 	// var username = jQuery('#username');
		// 	console.log(username);

		// 	// 根据class来查询
		// 	var areaList = jQuery('.area');
		// 	console.log(areaList);

		// 	// 根据元素标签来查询
		// 	var pList = $('p');
		// 	console.log(pList)
		// });

		// $(function() {
		jQuery(function() {
			// 根据ID
			var username = $('#username');
			// var username = jQuery('#username');
			console.log(username);

			// 根据class来查询
			var areaList = jQuery('.area');
			console.log(areaList);

			// 根据元素标签来查询
			var pList = $('p');
			console.log(pList)

			// 层级选择器
			// var bodyList = $('body *');
			// 所有的后代元素p
			var bodyList = $('body p');
			console.log(bodyList);

			// 直接的子元素
			bodyList = $('body > p');
			console.log(bodyList);

			// 紧贴之后的元素
			var input = $('label + input');
			console.log(input)

			// 伪类选择器练习
			var pFirst = $('p:first');
			console.log(pFirst)

			var p2  = $('p:eq(1)');
			console.log(p2);

			// 属性选择器
			var password = $('input[name="password"]');
			// var password = $('input[name^="passw"]');
			console.log(password)

			var idInputList = $('input[id]');
			console.log(idInputList)
		})

	</script>
</head>
<body>
	<label for="username">用户名</label>
	<input type="text" name="username" id="username">
	<input type="password" name="password" >

	<p class="area city">广州</p>
	<p>深圳</p>
	<p class="area">长沙</p>
	<p class="area" id="beij">北京</p>

	<div>
		<p>海南</p>
	</div>
	
</body>
</html>

1.2 查询DOM信息

访问HTML属性(id,class,style,自定义属性)

.attr('class')

查看HTML/文本信息

.html()/text()

查看表单信息

.val()

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>查询DOM信息</title>
	<link rel="stylesheet" href="">
	<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
</head>
<body>
	<input type="text" name="username" id="username" class="input-text user-input" my-user='张三'
		value="我的用户名">
		<!-- textarea  select checkbox radio -->
	<input type="text" name="password">

	<p class="area city">广州</p>
	<p style="color:#f00;">深圳</p>
	<p class="area">长沙</p>
	<p class="area" id="beij">北京</p>

	<p class="info" id="info">
		查看详细
		<span>内容:</span>
		<small>文字描述</small>
	</p>
	<script>
		$(document).ready(function() {
			// class属性
			var cls = $('#username').attr('class');
			console.log('class:', cls)
			// type属性
			var tys = $('#username').attr('type');
			console.log('type:', tys);
			// 自定义属性
			var user = $('#username').attr('my-user');
			console.log('my-user:', user);

			// 查询html信息
			var htmlContent = $('#info').html();
			console.log('Html:', htmlContent);
			// 查询text信息
			var textContent = $('#info').text();
			console.log('Text:', textContent);

			var inputUsername = $('#username').val();
			console.log('inputUsername:', inputUsername);

			// jQuery对象转换成DOM对象
			var username = $('#username');
			console.log('username jquery', username);
			// dom对象
			console.log('username dom', username.get()[0].value);
			console.log('username dom', username.get(0).value);
		})
	</script>
</body>
</html>

jQuery对象与原生DOM对象相互转换

$('#id').get(0)

1.3  遍历DOM

length  ----- 对象的长度

for 循环遍历

.each()  循环遍历

find()

作用:在当前的元素集合中进行搜索

语法规则:.find(selector)      .find(element)

1.4 修改DOM 信息

  • 使用jQuery构建DOM

        $('<p/>')

  • .append() / .appendTo()添加到DOM
  • .html() / .text() / .val() / .attr()  设置内容
  • css() 添加css / .addClass()、 .removeClass()类操作
  • .show() / hide() 控制显示和隐藏
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>DOM查询</title>
	<link rel="stylesheet" href="">
	<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
</head>
<body>
	<input type="text" name="username" id="username" class="input-text user-input" my-user='张三'
		value="我的用户名">
		<!-- textarea  select checkbox radio -->
	<input type="text" name="password">

	<p class="area city">广州</p>
	<p style="color:#f00;">深圳</p>
	<p class="area">长沙 <span>测试数据</span></p>
	<p class="area" id="beij">北京</p>

	<p class="info" id="info" style="display: none;">
		查看详细
		<span>内容:</span>
		<small>文字描述</small>
	</p>
	<script>
		$(function() {
			var pList = $('p');
			// // 第一个p元素
			// var p1 = pList.get(0);
			// console.log(p1);
			// var p3 = pList.get(2);
			// console.log(p3);


			console.log(pList);
			console.log('总共有几个:', pList.length);
			// for 循环遍历
			for (var i=0; i<pList.length; i++) {
				var item = pList[i];
				console.log(item)
			}
			// .each函数循环遍历
			console.log('---------------------')
			pList.each(function(index, value) {
				console.log(index, value)
			});

			console.log('--------------');  // json对象数组[{username: },{},]
			$.each(['a', 'bbb', 'ccc'], function(index, value) {
				console.log(index, value)
			})

			// .find的使用
			var list = pList.find('span');
			console.log(list)

			// 构建dom对象
			var htmlDom = $('<p class="test"/>');
			console.log(htmlDom)
			// 添加到html dom
			// htmlDom.appendTo('body');

			// $('body').append(htmlDom);


			// 在dom中添加内容
			// htmlDom.html('<span>我是新加的</span>');
			// $('body').append(htmlDom);

			// $('#beij').html('<span>我是新加的</span>');
			// .text() .val()

			// $('#beij').attr('class', '666');
			// 添加新的class
			$('#beij').addClass('666');
			// 移除class
			$('#beij').removeClass('area');

			// 操作css样式
			$('#beij').css({
				'color': '#0f0',
				'background-color': '#000'
			})

			// 隐藏元素
			// $('#info').hide();
			// 显示元素
			$('#info').show();


			// jQuery的链式调用
			var myDom = $('<p/>').text('你好').append('<span>,财主</span>').appendTo('body');
			// console.log(myDom)
		})
	</script>
</body>
</html>

二、jQuery中的事件

2.1 常用事件

  • 文档加载
  • 鼠标事件(点击/滑动)
  • 键盘事件
  • 表单事件

文档加载

当DOM准备就绪时,指定一个函数来执行

$(document).ready(function(){})

$(function(){})

鼠标事件

  • 点击事件

.click() / .dbclick()  -----  单击/双击

  • 移动事件

.mouseenter() / .mouseleave()  ----  进入/离开 (hover)

2.2 jQuery事件绑定

绑定语法

on('click',function(){})

click(function(){})

bind('click',function(){})

键盘事件

     按下

        .keydown()

     抬起

         .keyup()

表单事件

焦点:

.focus() / .blur()  ----  获得/失去焦点

值发生改变

.change()

form表单提交

.submit()

事件的行为

阻止a标签的默认行为

event.preventDefault()

阻止多个事件冒泡

event.stopPropagation()

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>jQuery事件</title>
	<script src="./js/jquery-3.4.1.js" type="text/javascript"></script>
	<style type="text/css">
		.text-danger {
			color: #f00;
		}
		.reg3 {
			background-color: #f00;
			padding: 30px;
		}
		.reg3 span {
			background-color: #fff;
		}
	</style>
</head>
<body>
	<!-- <div onclick="clickMe()">请点击我</div> -->
	<div >请点击我</div>
	<input type="text" name="username" id="username">
	<form action="." method="get">
		<input type="text" name="uname" id="uname">
		<p id="txtError" class="text-danger"></p>
		<select name="sex" id="sex">
			<option value="1">男</option>
			<option value="0">女</option>
		</select>
		<input type="password" name="password">
		<input type="submit" value="注册">
		<button type="submit">提交</button>
	</form>
	<a class="reg2" href="http://imooc.com">注册</a>
	<a class="reg" href="javascript:;">注册会员</a>
	<a class="reg" href="javascript:void(0);">注册会员</a>

	<a class="reg3" href="avascript:;">
		<span>点击我</span>
	</a>
	<script type="text/javascript" src="./js/myjs.js">
		// function clickMe() {
		// 	alert('点击了我')
		// }
		// $(function() {
		// 	// js业务逻辑和html分离
		// 	$('div').click(function() {
		// 		alert('点击了')
		// 	})
		// })

		$(function() {
	// js业务逻辑和html分离

	// 鼠标单击事件
	// $('div').click(function() {
	// 	alert('点击了')
	// })

	// 双击事件
	// $('div').dblclick(function() {
	// 	alert('点击了2次')
	// });

	$('div').on('dblclick', function() {
		alert('点击了2次')
	})

	// hover
	// $('div').mouseenter(function() {
	// 	$(this).css({
	// 		'background-color': '#f00'
	// 	})
	// }).mouseleave(function() {
	// 	$(this).css({
	// 		'background-color': '#fff'
	// 	})
	// })

	$('div').hover(function(){
		$(this).css({
			'background-color': '#00f'
		})
	}, function() {
		$(this).css({
			'background-color': '#fff'
		})
	})

	// 绑定键盘事件
	$('#username').keyup(function() {
		var val = $(this).val()
		console.log(val)
	})

	// 用户名获得焦点
	$("#uname").focus();
	$("#uname").blur(function() {
		var phone = $(this).val()
		if (phone.length !== 11) {
			$("#txtError").text('输入的手机号码不正确')
		}
	})

	// 性别选择发生变化时触发
	$('#sex').change(function() {
		var sex = $(this).val()
		console.log(sex)
	})

	// 表单提交
	$('form').submit(function() {
		alert('表单提交了')
		// 验证我们的表单
		// 验证通过了,才需要提交表单
		return false; // 阻止表单的提交
	})

	// a标签的事件
	$('.reg2').click(function(event) {
		// 阻止a标签的默认行为
		event.preventDefault()
		alert('a click')
	});

	$('.reg').click(function(event) {
		alert('a click 2')
	})

	// 事件的冒泡
	$('.reg3').click(function() {
		alert('reg3');
	})
	$('.reg3 span').click(function(e) {
		// 阻止事件冒泡
		e.stopPropagation();
		alert('reg3 span')
	})
})
	</script>
</body>
</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值