通过可编程的对象模型,JavaScript获得了足够的能力来创建动态的HTML。
- JavaScript能够改变页面中的所有HTML元素
- JavaScript能够改变页面中的所有HTML属性
- JavaScript能够改变页面中的所有CSS样
- JavaScript能够对页面中的所有事件做出反应
- 通过Id找到HTML元素 document.getElementById("idname")
- 通过标签找到HTML元素 var x=document.getElementById("main"); var y=x.getElementsByTagName("p");查找id="main"元素中所有<p>元素
- 通过类名找到HTML元素 document.getElementsByClassName("className")
document.getElementById(id).style.property=new_style
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DOM事件传递有两种方式:冒泡与捕获。
两种方式中元素事件触发顺序中,冒泡会先触发内部元素,后触发外部元素;捕获会先触发外部元素,后触发内部元素。
方法调用格式:addEventListener(event,function,useCapture);
其中,useCapture默认为false,即冒泡传递,值为true时,事件使用捕获传递。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
JavaScript中创建三种消息框:警告框、确认框、提示框。
警告框用于确保用户可以得到某些信息。语法为window.alert("This is warning"),可以直接使用alert()方法。
确认框用户验证是否接受用户操作。点击"确认",返回true,点击"取消",返回false。语法为window.confirm("sometext")。
提示框用于提示用户在进入页面前输入某个值。用户需要输入某个值,然后点击确认或者取消按钮才能继续操纵。语法为window.prompt("sometext","defaultvalue")
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在JavaScript中,可以设定的时间间隔之后来执行代码。计时事件可以用两种方法。
- setInterval()-间隔指定的毫秒数不停地执行指定的代码(循环执行)
- setTimeout()-暂停指定的毫秒数后执行指定的代码(延时执行)
使用clearTimeout()方法停止setTimeout()定时。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
jQuery的应用
在HTML文档中使用jQuery函数格式:
$(document).ready(function(){
//jQuery事件执行
})
简介的写法格式为:
$(function(){
//jQuery事件执行
})
通过jQuery语法可以对HTML元素执行部分操作。语法为:$(selector).action()
实例:
- $(this).hide()-隐藏当前元素
- $("p").hide()-隐藏插入标签下的所有<p>元素
- $("p.test").hide()-隐藏所有class=''test"的<p>元素
- $("#test").hide()-隐藏所有id=''test"的元素
语法 | 描述 | |
---|---|---|
$("*") | 选取所有元素 | |
$(this) | 选取当前 HTML 元素 | |
$("div.test") | 选取 class 为 test 的 <div> 元素 | |
$("div:first") | 选取第一个 <div> 元素 | |
$("ul li:first") | 选取第一个 <ul> 元素的第一个 <li> 元素 | |
$("ul li:first-child") | 选取每个 <ul> 元素的第一个 <li> 元素 | |
$("[href]") | 选取带有 href 属性的元素 | |
$("a[target='_blank']") | 选取所有 target 属性值等于 "_blank" 的 <a> 元素 | |
$("a[target!='_blank']") | 选取所有 target 属性值不等于 "_blank" 的 <a> 元素 | |
$(":button") | 选取所有 type="button" 的 <input> 元素 和 <button> 元素 | |
$("p:even") | 选取偶数位置的 <p> 元素 | |
$("p:odd") | 选取奇数位置的 <tr> 元素 |
以上均适用于HTML中的元素标签,<div>、<p>、<span>、<h>、<ul>。
$(document).ready()方法允许我们在文档完全加载后执行函数。jQuery中常用的事件方法有:
click()方法是点击事件被触发时调用函数;
dblclick()方法为双击事件被触发时调用函数;
mouseenter()方法为鼠标经过元素触发事件;
mouseleave()方法为鼠标离开元素触发事件;
mousedown()方法为鼠标移动到元素上并按下鼠标触发事件;
mouseup()方法为鼠标在元素上并松开鼠标触发事件;
hover()方法为鼠标移动元素上时触发第一个函数,移出元素是,触发第二个函数;
focus()方法为鼠标点击选中元素或通过tab键定位到元素时,获得焦点触发事件;
blur()方法则与focus()相反;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
通过jQuery实现HTML元素的淡入淡出效果,共有四种fade方法。
- fadeIn()用于淡入已经隐藏的元素,语法为:$(selector).fadeIn(speed,callback)。
- fadeOut()用于淡出可见元素,语法与fadeIn相同。
- fadeToggle()用于淡入淡出之间切换,语法同上。
- fadeTo()允许渐变为给定的不透明度(介于0与1之间),语法为:$(selector).fadeTo(speed,opacity,callback)。
- slideDown()用于向下滑动元素,语法为:$(selector).slideDown(speed,callback)。
- slideUp()用于向上滑动元素。
- slideToggle()用于向上向下滑动元素之间切换。
语法:$(selector).animate({params},speed,callback);
其中params参数重新定义了selector的css属性(可以是同事操作多个属性,如opacity、height、width等),形成动画效果。
stop用于停止动画或效果,包括滑动、淡入淡出和自定义动画。
通过jQuery可以把以上的方法链接在一起,即允许一条语句运行多个jQuery方法(在相同的元素上)。
例:
$("#p").css("color","blue").slideDown(1000).slideUp(1000);
效果为:<p>标签内容变为蓝色,然后向下滑动,后向上滑动。
jQuery方法中可以通过三个方法实现获取内容。
- text()-设置或返回所选元素的文本内容
- html()-设置或返回萱萱的内容(包括HTML标记)
- val()-设置或返回表单字段的值。(即获取输入字段的值)
- attr()-获取链接中href属性的值
- append()-在被选元素的结尾插入内容
- prepend()-在被选元素的开头插入内容
- after()-在被选元素之后插入内容
- before()-在被选元素之前插入内容
- remove()-删除被选元素及其子元素(全删)
- empty()-删除被选元素的子元素(只删子元素,父元素还在)
- addClass()-向被选元素添加一个或多个类
- removeClass()-从被选元素删除一个或多个类
- toggleClass()-对被选元素进行添加/删除类的切换操作
jQuery遍历用于遍历DOM树,其中向上遍历方法有:
- parent()-被选元素上一级的直接父元素,通过添加参数过滤
- parents()-被选元素上级所有祖先元素,也可以通过添加参数过滤
- parentsUntil()-介于被选元素及给定祖先之间的元素,不包括给定祖先。
<div>
<ul>
<li>
<p></p>
</li>
</ul>
</div>
那么$("p").parentsUntil("div")则选中了<ul>、<li>两个标签。
用于向下遍历DOM树的jQuery方法有:
- children()-被选元素的所有直接子元素(所有儿子,不包括孙子),也可以通过添加参数进行过滤
- find()-被选元素所有后代满足参数的,其中find("*")返回所有后代
用于水平遍历DOM树的方法较多:
- sibings()-除了自己所有同胞元素,也可以通过参数进行过滤
- next()-被选元素的下一个同胞元素,prev()相对应
- nextAll()-被选元素后面所有同胞元素,preAll()相对应
- nextUntil()-介于之间,参考parentsUntil(),prevUntil()相对应