jquery基础

一、jQuery与DOM:

1:DOM对象和jQuery对象的区别:jQuery对象是由普通 的DOM对象以及jQuery的功能集合构成的,因此要使用jQuery的功能特性,就需要先将普通 的DOM对象通过构造器$()转换成jQuery对象,将普通 的DOM对象作为参数传递给它。

2:将DOM对象包装成jQuery对象,跨域直接将一个DOM对象作为参数传递给$()如 $(window),这样函数$()会将window对象包装成一个jQuery对象然后返回; 也可以传递一个选择器的参数给$()如 $('#parent')。

$实际上是一个函数,

结果为true。这里使用全等运算符比较这两个变量jQuery和$,结果相等,这说明jQuery和$指向的是同一个对象。实际上在引入了jQuery框架之后,它为我们提供了一个jQuery变量,以此作为一个接口让我们可以使用jQuery。但是由于在实际编程中jQuery这个变量使用的频率非常高,而五个单词输入起来相对麻烦一些,所以使用一个“$”变量,让其指向jQuery。

二、jquery选择器用法:

1、元素选择器
$("p") 选取 <p> 元素。
$("p.intro") 选取所有 class="intro" 的 <p> 元素。
$("p#demo") 选取所有 id="demo" 的 <p> 元素。

2、 属性选择器
$("[href]") 选取所有带有 href 属性的元素。
$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。
$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。
$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。

3、id选择器
例如:$("#lastname") id="lastname" 的元素

4、类选择器:
$(".intro") 所有 class="intro" 的元素
$(".intro.demo") 所有 class="intro" 且 class="demo" 的元素
5、伪类选择器

6、

   

三、jQuery 效果类方法:

1、 隐藏显示:
hide() 和 show() 方法来隐藏和显示 HTML 元素;toggle() 方法来切换 hide() 和 show() 方法,如果当前是hide,toggle会调用show方法,反之则反。
$(selector).hide(speed,callback);
$(selector).show(speed,callback);
$(selector).toggle(speed,callback);
2、淡入淡出:
fadeIn() 用于淡入已隐藏的元素,fadeOut() 方法用于淡出可见元素。fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换。例:
 

3、滑动
slideDown() 方法用于向下滑动元素,slideUp() 方法用于向上滑动元素。slideToggle() 方法可以在 slideDown() 与 slideUp() 方法之间进行切换

4、改变css样式:css()函数。例:

$("." + v).next().css("background-color", "blue");

利用“属性名/值”对所有匹配元素设置多个样式属性(值) css({"propertyname":"value","propertyname":"value",...});
eg:为所有的p元素设置background-color 和 font-size属性并赋值
$("p").css({"background-color":"yellow","font-size":"200%"});
5、 toggleclass()方法在jQuery中的描述为:为集合中的每个元素添加或移除一个或多个class,至于具体是添加还是移除则取决于当前这个元素中是否存在这个class值,或者由参数state的值决定增删。
四、jQuery操作元素常用方法:

   

五、jQuery遍历

通过 jQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行遍历

1、祖先遍历:

使用parents()查找一个元素所有的父节点,那最终父节点的最顶层会查找到html节点为止,包括这个节点。

2、后代遍历:

$("#div").find("*")表示要找到这个节点下所有在后代节点,包括子节点、孙子节点等

3、同胞遍历:

说明:前面在js博客里提到过js的顺序,而在网页中为了使格式规整,一般都把css和js放前面,这时候为了不出错,最好在js前面加上一个ready函数表示文档已全部加载完成,而这个ready函数一般简写成这样:$(function(){

//这里写主体代码,

})

六、js的隐式迭代:

如对一类元素进行一些统一的操作:

$(window).load(function(){
				var rows=document.querySelectorAll('tr.row');
				var jqueryObj=$(rows);
				jqueryObj.addClass('light');
			})

也可用全部使用jquery代码:

$('tr.row').addClass('light');

 相对纯生的javascript少了循环,jQuery会自动的遍历这个数组,并为其中的每个元素执行这个添加class的操作。

 

七、jQuery中操作DOM节点的属性:jQuery为我们提供了attr()方法用于操作DOM的属性。

attr(属性名)
//获取属性的值(取得第一个匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回undefined )
attr(属性名, 属性值)
//设置属性的值 (为所有匹配的元素设置一个属性值。)

八、事件:

讲完了事件对象我们来讲一下事件冒泡,首先我们要知道冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。阻止事件进行冒泡:

1、通过返回false来取消默认的行为并阻止事件冒泡。
$("form").bind(
  "submit",
  function() {
    return false;
   }
);

2、通过使用 preventDefault() 方法只取消默认的行为。
$("form").bind(
  "submit",
  function(event){
    event.preventDefault();
  }
);

3、通过使用 stopPropagation() 方法只阻止一个事件冒泡。
$("form").bind(
  "submit",
  function(event){
    event.stopPropagation();
  }
);

例1:

例2:现有一个文档阅读器:

框架pdfdemo.html:

<span style="color:#000099"><!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	
		<frameset cols="20%,10%,70%,*">
			<frame src="nav.html" name="nav"/>
			<frame />
			<frame src="main.html" name="main"/>
		</frameset>
	
</html></span>

导航nav.html:

<span style="color:#000099"><!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			body {
				margin: 0px;
			}
			
			ul li {
				list-style-type: none;
				//width: 100%;
			}
			
			a {
				text-decoration: none;
				font-size: 20px;
				/*border: 1px solid wheat;
				border-radius: 10%;*/
			}
			
			a:link {
				color: blue;
			}
			
			a:visited {
				color: black;
			}
			
			a:hover {
				background-color: orange;
			}
			
			a:active {
				background-color: orangered;
			}
			
			div {
				margin-left: 0px;
				margin-right: 0px;
				border: 1px solid wheat;
				border-radius: 10%;
			}
		</style>
		<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
		<script>
			function togg(v) {
				/*var ul=document.getElementsByClassName(v);
				if(ul[0].style.display=="none"){
					ul[0].style.display="block";
				}else{
					ul[0].style.display="none";
				}*/
				$("." + v).toggle()
			}
		</script>
	</head>

	<body>
		<ul>
			<li>
				<div><img src="img/tb.png" onclick='togg("tran1")' />
					<a href="main.html#m1" target="main">jquery</a>
				</div>
				<ul class="tran1">
					<li>
						<div>
							<a href="main.html#m2" target="main">jquery选择器</a>
						</div>
					</li>
					<li>
						<div>
							<a href="main.html#m3" target="main">jquery效果</a>
						</div>
					</li>
					<li>
						<div>
							<a href="main.html#m4" target="main">jquery文档操作</a>
						</div>
					</li>
					<li>
						<div>
							<img src="img/tb.png" onclick='togg("tran2")' />
							<a href="main.html#m5" target="main">jquery遍历</a>
						</div>
						<ul class="tran2">
							<li>
								<div>
									<a href="main.html#m6" target="main">祖先遍历</a>
								</div>
							</li>
							<li>
								<div>
									<a href="main.html#m7" target="main">后代遍历</a>
								</div>
							</li>
							<li>
								<div>
									<a href="main.html#m8" target="main">同胞遍历</a>
							</li>
							</div>
						</ul>
					</li>
					<li>
						<div><img src="img/tb.png" onclick='togg("tran3")' />
							<a href="main.html#m9" target="main">jquery ajax</a>
						</div>
						<ul class="tran3">
							<li>
								<div>
									<a href="main.html#m10" target="main">load方法</a>
							</li>
							</div>
							<li>
								<div>
									<a href="main.html#m11" target="main">get()和post()方法</a>
							</li>
							</div>
							<li>
								<div>
									<a href="main.html#m12" target="main">jquery.ajax(...)</a>
							</li>
							</div>
						</ul>
					</li>
				</ul>
			</li>
		</ul>
	</body>

</html></span>

主体main.html:

<span style="color:#000099"><!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			ul li {
				list-style-type: none;
			}
			
			table {
				width: 600px;
				text-align: center;
				border: 1px solid wheat;
				margin-top: 20px;
				font-size: 20px;
			}
			
			tr:nth-child(odd) {
				background-color: wheat;
			}
		</style>
		<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
		<script>
			var flag = 0;

			function fun() {
				$("ol").slideToggle(1000)
			}

			function choose(v) {
				if(flag == 0) {

					$("." + v).next().css("background-color", "blue");
					flag = 1;
				} else if(flag == 1) {
					$("." + v).next().css("background-color", "");
					flag = 0;
				}
			}

			function choose1(v) {
				if(flag == 0) {
					$("." + v).css("border", "2px solid red");
					flag = 1;
				} else {
					$("." + v).css("border", "");
					flag = 0;
				}

			}

			function over() {
				$(this).css("cursor", "hand")
			}
		</script>
	</head>

	<body>
		<div class="container">
			<a name="m1">
				<div>
					<h2>.jquery</h2></div>
			</a>
			<a name="m2">
				<div>

					<h3><p class="btnp" onclick="fun()" onmouseover="over()">.jquery选择器</p></h3>
					<ol>
						<li>
							<p class="p1" onclick='choose("p1")'>元素选择器</p>
							<ul>
								<li>$("p") 选取
									<p> 元素。</li>
								<li>$("p.intro") 选取所有 class="intro" 的
									<p> 元素。</li>
								<li>$("p#demo") 选取所有 id="demo" 的
									<p> 元素。</li>
							</ul>
						</li>
						<li>
							<p class="p2" onclick='choose("p2")' onmouseover="over()">属性选择器</p>
							<ul>
								<li>$("[href]") 选取所有带有 href 属性的元素。

								</li>
								<li>$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。</li>
								<li>$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。</li>
								<li>$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。</li>
							</ul>
						</li>
						<li>
							<p class="p3" onclick='choose("p3")' onmouseover="over()">id选择器</p>
							<ul>
								<li>例如:$("#lastname") id="lastname" 的元素</li>
							</ul>
						</li>
						<li>
							<p class="p4" onclick='choose("p4")' onmouseover="over()">类选择器</p>
							<ul>
								<li>$(".intro") 所有 class="intro" 的元素</li>
								<li>$(".intro.demo") 所有 class="intro" 且 class="demo" 的元素</li>
							</ul>
						</li>
						<li>
							<p onclick='choose1("p5")' class="p5" onmouseover="over()">伪类素选择器</p>
							<table>
								<tr>
									<td>:first</td>
									<td>$("p:first")</td>
									<td>第一个 p元素</td>
								</tr>
								<tr>
									<td>:last</td>
									<td>$("p:last")</td>
									<td>最后一个 p 元素</td>
								</tr>
								<tr>
									<td>:even</td>
									<td>$("tr:even")</td>
									<td>所有偶数 tr 元素</td>
								</tr>
								<tr>
									<td>:odd</td>
									<td>$("tr:odd")</td>
									<td>所有奇数 元素tr</td>
								</tr>
							</table>

							<table>
								<tr>
									<td>:first</td>
									<td>$("p:first")</td>
									<td>第一个 p元素</td>
								</tr>
								<tr>
									<td>:last</td>
									<td>$("p:last")</td>
									<td>最后一个 p 元素</td>
								</tr>
								<tr>
									<td>:even</td>
									<td>$("tr:even")</td>
									<td>所有偶数 tr 元素</td>
								</tr>
								<tr>
									<td>:odd</td>
									<td>$("tr:odd")</td>
									<td>所有奇数 元素tr</td>
								</tr>
							</table>

							<table>
								<tr>
									<td>:first</td>
									<td>$("p:first")</td>
									<td>第一个 p元素</td>
								</tr>
								<tr>
									<td>:last</td>
									<td>$("p:last")</td>
									<td>最后一个 p 元素</td>
								</tr>

							</table>

							<table class="tab1">
								<tr>
									<td>:first</td>
									<td>$("p:first")</td>
									<td>第一个 p元素</td>
								</tr>
								<tr>
									<td>:last</td>
									<td>$("p:last")</td>
									<td>最后一个 p 元素</td>
								</tr>
								<tr>
									<td>:first</td>
									<td>$("p:first")</td>
									<td>第一个 p元素</td>
								</tr>
								<tr>
									<td>:last</td>
									<td>$("p:last")</td>
									<td>最后一个 p 元素</td>
								</tr>
								<tr>
									<td>:first</td>
									<td>$("p:first")</td>
									<td>第一个 p元素</td>
								</tr>
								<tr>
									<td>:last</td>
									<td>$("p:last")</td>
									<td>最后一个 p 元素</td>
								</tr>
								<tr>
									<td>:first</td>
									<td>$("p:first")</td>
									<td>第一个 p元素</td>
								</tr>
								<tr>
									<td>:last</td>
									<td>$("p:last")</td>
									<td>最后一个 p 元素</td>
								</tr>
								<tr>
									<td>:first</td>
									<td>$("p:first")</td>
									<td>第一个 p元素</td>
								</tr>
								<tr>
									<td>:last</td>
									<td>$("p:last")</td>
									<td>最后一个 p 元素</td>
								</tr>
								<tr>
									<td>:first</td>
									<td>$("p:first")</td>
									<td>第一个 p元素</td>
								</tr>
								<tr>
									<td>:last</td>
									<td>$("p:last")</td>
									<td>最后一个 p 元素</td>
								</tr>
							</table>
						</li>
					</ol>
				</div>
			</a>

			<a name="m3">
				<div>
					<h2>.jquery效果</h2>
				</div>
			</a>

			<a name="m4">
				<div></div>
			</a>

			<a name="m5">
				<div></div>
			</a>

			<a name="m6">
				<div></div>
			</a>

			<a name="m7">
				<div></div>
			</a>

			<a name="m8">
				<div></div>
			</a>

			<a name="m9">
				<div></div>
			</a>

			<a name="m10">
				<div></div>
			</a>

			<a name="m11">
				<div></div>
			</a>

			<a name="m12">
				<div></div>
			</a>
		</div>
		<script>
		</script>
	</body>

</html></span>

效果:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值