一、
将DOM对象包装成jQuery对象,我们已经见到两种了: 1)第一种是直接将一个DOM对象作为参数传递给$(): $(window),这样函数$()会将window对象包装成一个jQuery对象然后返回; 2)第二种则是传递一个选择器的参数给$(): $('#parent')。
$实际上是一个函数,
结果为true。这里使用全等运算符比较这两个变量jQuery和$,结果相等,这说明jQuery和$指向的是同一个对象。实际上在引入了jQuery框架之后,它为我们提供了一个jQuery变量,以此作为一个接口让我们可以使用jQuery。但是由于在实际编程中jQuery这个变量使用的频率非常高,而五个单词输入起来相对麻烦一些,所以使用一个“$”变量,让其指向jQuery。
DOM对象和jQuery对象的区别:jQuery对象是由普通 的DOM对象以及jQuery的功能集合构成的,因此要使用jQuery的功能特性,就需要先将普通 的DOM对象通过构造器$()转换成jQuery对象,将普通 的DOM对象作为参数传递给它。
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、 伪类选择器
二、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()函数。例:
[html] view plain copy
- $("." + 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 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行遍历
1、祖先遍历:
使用parents()查找一个元素所有的父节点,那最终父节点的最顶层会查找到html节点为止,包括这个节点。
2、后代遍历:
$("#div").find("*")表示要找到这个节点下所有在后代节点,包括子节点、孙子节点等
3、同胞遍历:
说明:前面在js博客里提到过js的顺序,而在网页中为了使格式规整,一般都把css和js放前面,这时候为了不出错,最好在js前面加上一个ready函数表示文档已全部加载完成,而这个ready函数一般简写成这样:$(function(){
//这里写主体代码,
})
五、js的隐式迭代:
如对一类元素进行一些统一的操作:
[html] view plain copy
- $(window).load(function(){
- var rows=document.querySelectorAll('tr.row');
- var jqueryObj=$(rows);
- jqueryObj.addClass('light');
- })
也可用全部使用jquery代码:
[html] view plain copy
- $('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();
}
);
例:
例:现有一个文档阅读器:
框架pdfdemo.html:
[html] view plain copy
- <span style="color: rgb(0, 0, 153);"><!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:
[html] view plain copy
- <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:
[html] view plain copy
- <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>
效果:
版权声明:本文为博主原创文章,未经博主允许不得转载。