jQuery 设计思想是将原始的 dom 对象封装成一个 jQuery 对象,通过调用 jQuery 对象的方
法来实现对原始的 dom 对象的操作。这样设计的目的是:是为了更好地兼容不同的浏览器,
简化代码
jQuery编程步骤:
1、<script type="text/javascript" src="js/jquery-1.4.3.js">
2、使用jQuery提供的选择器找到节点,一般情况下, jQuery会将找到的节点封装成jQuery对象
3、调用 jQuery 对象提供的方法
jQuery 对象与 dom 对象之间的转换
a. dom 对象转换成 jQuery 对象:使用 var $obj = $(dom 对象);
b. jQuery 对象转换成 dom 对象:使用 var obj = $obj.get(0)或者 var obj = $obj.get()[0]
jQuery 选择器
jQuery 选择器模仿 css 选择器的语法,其作用是,查找符合选择器要求的节点。
a. 基本选择器
#id
.class
element
selector1,select2..selectn
*
b. 层次选择器
select1 select2
select1>select2
select1+select2
select1~select2
c. 过滤选择器
1) 基本过滤选择器
:first
:last
:not(selector)
:even
:odd
:eq(index)
:gt(index)
:lt(index)
2) 内容过滤选择器
:contains(text)
:empty
:has(selector)
:parent
3) 可见性过滤选择器
:hidden
:visible
4) 属性过滤选择器
[attribute]
[attribute=value]
[attribute!=value]
5) 子元素过滤选择器
:nth-child(index/even/odd)
6) 表单对象属性过滤选择器
:enabled
:disabled
:checked
:selected
d. 表单选择器
:input
:text
:pasword
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden
e. select 选择器
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.4.3.js"></script>
<script>
function f2(){
//将原始的dom对象封装成一个jQuery对象
var obj = $('#a1');
//因为不再是原始的dom对象,所以不能使用dom对象提供的属性或方法了。
要使用jQuery对象提供的方法戒者属性。
alert(obj.html());
}
//演示:利用jQuery改变样式
function f4(){
$('#d1').css('font-size','60px').css('font-style','italic');
}
//演示:dom 对象和 JQuery 对象的相互转换
//dom对象转换成jQuery对象
function f1(){
var obj = document.getElementById('a1');
var $obj = $(obj);
alert($obj.html());
}
//jQuery对象转换成dom对象
function f2(){
var $obj = $('#a1');
var obj = $obj.get(0);或var obj = $obj.get()[0];
alert(obj.innerHTML);
}
//演示:select 选择器
//将找到节点的字体变大
function f1(){
$('.s1').css('font-size','40px');--- .class选择器s1对象
$('p.s1').css('font-size','40px');---元素选择器p+ .class选择器s1对象
$('div').css('font-size','40px');--- 元素选择器div对象
$('#d1,p.s1').css('font-size','40px');---id选择器d1对象和元素选择器p+ .class选择器s1对象
$(' * ').css('font-size','40px');---所有
}
</script>
</head>
<body style="font-size:30px;">
<a id="a1" href="javascript:;" onclick="f2();">hello jquery</a>
<div id="d1">jquery 是什么?</div>
<div id="d1">hello1</div>
<div class="s1">hello2</div>
<div class="s1">hello3</div>
<p class="s1">hello4</p>
<input type="button" value="基本选择器的使用" onclick="f1();"/>
</body>
</html>
jQuery dom 操作
1) 查询
利用选择器查找到节点:
text() 输出或设置节点之间的文本,text 方法相当于 dom 节点的 innerText 属性
html()输出或设置节点之间的 html 内容,html 方法相当于 dom 节点的 innerHTML 属性。
attr()输出或设置节点的属性值。
val()下拉列表,可以使用 val()获得值
2) 创建
$(html);
3) 插入节点
append()向每个匹配的元素内部追加内容
prepend() 向每个匹配的元素内部前置内容
after() 在每个匹配的元素之后插入内容
before()在每个匹配的元素之前插入内容
4) 删除节点
remove()
remove(selector)
empty() 清空节点
5) 复制节点
clone() 复制(不复制行为)
clone(true): 使复制的节点也具有行为
6) 属性操作
attr(''); 读取属性
设置:attr('','')
戒者一次设置多个 attr({"":"","":""});
删除:removeAttr('')
7) 样式操作
attr("class","") 获取和设置
addClass('') 追加
removeClass('') 移除 或 removeClass('s1 s2') 或 removeClass() 会删除所有样式
toggleClass() 切换样式:
hasClass('') 是否有某个样式
css('') 读取设置 css('','')戒者 css({'':'','':''})//设置多个样式
8) 遍历节点
children() 只考虑子元素,丌考虑其它后代元素。
next()
prev()
siblings(): 兄弟节点
find(selector)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.4.3.js"></script>
<style>
.s1{
color:red;
}
.s2{
font-style:italic;
}
</style>
<script>
演示:打印,设置属性/属性值
function f2(){
alert($('#d1').html());---html()输出标记中所有内容
alert($('#d1').text());---text()输出标记中的文本内容
alert($('#d1').html('hello,tom'));---用 html()改变页面内容
alert($('#d1').attr('id'));---attr()输出节点的属性值,本例值为d1
$('#d1').attr('style' , 'font-size:40px;color:red;'); ---attr()设置节点的属性值
$('#d1').attr({'style':'font-size:60px;','class':'s1'}); ---attr()设置节点的属性值
alert($(':text').val());---使用 val()获得表单文本框的值
$(':text').val('马云');---val()设置值
alert($('#s1').val());---使用 val()获得下拉列表被选项的值
}
演示:增加节点
function f2(){
var $obj = $('<li>item4</li>');
$('#u1').append($obj);---标准形式
简化形式:
$('#u1').append('<li>item4</li>');---向元素u1内部追加元素
$('#u1').prepend('<li>item4</li>');---向元素u1内部前置元素
$('#u1').after('<div>hello jquery</div>');---向元素u1外部追加元素
$('#u1').before('<div>hello jquery</div>');---向元素u1外部前置元素
$('#u1 li').remove('#i2');---删除节点
$('#u1 li :eq(1)').remove();---删除节点(#u1 li:层次选择器,:eq(1):过滤选择器)
$('#u1 li :eq(1)').empty();---empty()清空节点中的内容
演示:初始化自动加载函数:当整个html文件解析完毕生成dom树之后执行内部的代码
$(function(){
$('#u1 li:eq(2)').click(function(){ alert('doaction...'); }); ---绑定click事件
$('#b1').click(function(){
var $obj = $('#u1 li:eq(2)').clone(true);---clone()复制节点不复制行为;clone(true):复制节点和行为
$('#u1').append($obj);
});
});
演示:样式操作
$(function(){
$('#b1').click(function(){
$('#d1').attr('class','s1');---添加样式
$('#d1').addClass('s2');---添加样式
$('#d1').removeClass('s1');---删除样式
$('#d1').toggleClass('s1');
alert($('#d1').hasClass('s1'));---判断是否有指定样式
$('#d1').css({'font-style':'italic','font-size':'60px'});---设置样式
});
});
演示:遍历节点
$(function(){
$('#b1').click(function(){
$('#d1').children().css('color','red');---所有子节点
$('#d1').next().css('color','red');---下一个节点
$('#d1').siblings().css('color','red');---下一个节点
});
}
}
</script>
</head>
<body style="font-size:30px;">
<a id="a1" href="javascript:;" onclick="f2();">hello jquery</a>
<div id="d1">jquery 是什么?</div>
<input type="text" name="username" onclick="f1();"/>
<select id="s1">
<option value="bj">北京</option>
<option value="sh">上海</option>
</select>
<ul id="u1">
<li>item1</li>
<li id='i2'>item2</li>
<li>item3</li>
</ul>
<input id="b1" type="button" value="Click"/>
</body>
</html>
事件处理
1) 事件绑订
bind(type,fn)
2) 绑订方式的简写形式
click(function(){
});
3) 合成事件
hover(enter,leave) : 模拟光标悬停事件
toggle(fn1,fn2...):模拟鼠标连续单击事件
4) 事件冒泡
获得事件对象
//e 不再是原始的事件对象,而是 jQuery封装之后的事件对象。
click(function(e){
});
停止冒泡
event.stopPropagation()
停止默认行为
event.preventDefault()
5) 事件对象的属性
event.type:获得事件类型
event.target:获得事件源,返回的是原始的 dom 节点
<style>
ul{ list-style-type:none;}
ul li{
float:left;
width:150px;
height:40px;
background-color:#ff88ee;
margin-left:10px;
border:1px solid black;
text-align:center;
}
.selected{ background-color:yellow; }
</style>
<script type="text/javascript">
演示:事件绑订
$(function(){
正式写法
$('#b1').bind('click',function(){
$('#d1').css('font-size','60px');
});
简化为
$('#b1').click(function(){
$('#d1').css('font-size','60px');
});
});
演示:合成事件
$(function(){
$('#d1').hover(---hover(enter,leave) : 模拟光标悬停事件
//当光标进入时执行 this代表当前绑订事件的那个dom节点
function(){ $(this).css('background-color','#ff88ee'); },
//当光标移出时执行
function(){ $(this).css('background-color','#fff8dc');}
);
$('#a1').toggle(---toggle(fn1,fn2...):模拟鼠标连续单击事件
function(){
$(this).after("<div id='tips'></div>");
$('#tips').html('无它,唯勤奋尔');
},
function(){ $('#tips').remove();}
);
});
演示:事件冒泡
$(function(){
$('#a1').click(function(e){
alert('你点击了一个链接');
e.stopPropagation();--- e.stopPropagation()方法阻止事件冒泡
});
$('#d1').click(function(e){
alert('你点击了一个div');
});
$('a.s1').click(function(e){
var obj = e.target;---e.target 是事件对象属性,可以获得事件源
alert(obj.innerHTML);
});
});
演示:鼠标事件
$(function(){
$('ul li').mouseover(function(){---当鼠标移动到元素上时样式发生改变,鼠标移出后样式还原
$(this).addClass('selected').siblings().removeClass('selected');
});
});
</script>
<body style="font-size:30px;">
<div id="d1">hello jquery</div>
<input id="b1" type="button" value="Click" onclick="f1();"/>
<div id="d1"> <a href="javascript:;" id="a1">Click</a> </div>
<a href="javascript:;" class="s1">Click2</a><br/>
<a href="javascript:;" class="s1">Click3</a>
<ul>
<li>选项一</li>
<li>选项二</li>
<li>选项三</li>
</ul>
</body>
动画
1) show(): 显示
hide(): 隐藏
show("slow"/"normal"/"fast"/100) 可以带参数
hide("slow"/"normal"/"fast"/100) 可以带参数
2) fadeIn()
fadeOut(): 改变不透明度
3) slideUp():
slideDown(): 改变元素的高度
4) 以上凼数可以在执行完动画之后,再执行一个回调凼数。
show('slow',function(){
//写上劢画执行之后要执行的操作。
})
5) 自定义动画
animate(params,speed,[callback])
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
#d1{
width:250px;
height:80px;
background-color:#fff8dc;
display:none;
}
#d2{
width:100px;
height:100px;
background-color:red;
}
#d3{
width:100px;
height:100px;
background-color:blue;
opacity:0.2;
display:none;
}
</style>
<script type="text/javascript" src="../js/jquery-1.4.3.js"></script>
<script type="text/javascript">
演示:动画显示/隐藏、边框改变、透明度改变
$(function(){
$('#a1').toggle(
function(){
$('#d1').show('slow');---快速显示(不加参数的方法 show()和 hide()表示正常显示和隐藏)
$('#d1').slideDown('slow');---慢速减小元素的高度
},
function(){
$('#d1').hide('slow');---慢速消失
$('#d1').slideUp('slow');---慢速增大元素的高度
}
);
$('#d2').toggle(
fadeIn()&&fadeOut()改变不透明度
function(){
$('#d3').fadeIn('slow');
},
function(){
$('#d3').fadeIn('slow',function(){ alert('我出来了');});---带回调函数
},
function(){ $('#d3').fadeOut();}
);
});
演示:自定义动画
$(function(){
$('#b1').click(function(){
$('#d1').animate({'left':'300px','top':'100px'},3000);
$('#d1').animate({'top':'400'},2000).h ide('slow');
});
</script>
</head>
<body style="font-size:30px;">
<a href="javascript:;" id="a1">如何才能学好java</a><br/>
<div id="d1">首先要好好培养兴趣</div>
<div id="d2"></div>
<div id="d3"></div>
<input type="button" value="点我,上面的div就会走" id="b1"/>
</body>
</html>
jquery 操作类数组
$(选择器)操作返回的如果是一个数组,可以使用如下方法来操作:
1) each(fn(i)) 循环遍历每一个元素,this 代表被迭代的 dom 对象,$(this)代表被迭代
的 jQuery 对象。
2) eq(index) 返回 index+1 位置处的 jquery 对象
3) index(obj) 返回下标,其中 obj 可以是 dom 对象戒者 jQuery 对象。
4) length 属性 个数
5) get() 返回 dom 对象组成的数组
6) get(index) 返回 index+1 处的 dom 对象
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="../js/jquery-1.4.3.js"></script>
<script type="text/javascript">
演示:数组操作
$(function(){
$('#b1').click(function(){
var $obj = $('#u1 li');
alert($obj.length);---打印出类数组 ul(类似数组)的长度
$obj.each(function(index){---遍历数组元素,为它们加上不同的样式
if(index == 0){
$(this).css('color','red');
}else{
$(this).css('color','yellow');
}
});
$obj.eq(1).css('color','red');---指定元素的样式改变
var $o1 = $obj.eq(1);
var index = $obj.index($o1);---输出元素的下标
alert(index);
var obj = $obj.get(0);---get() 返回 dom 对象组成的数组
alert(obj.innerHTML);
});
});
</script>
</head>
<body style="font-size:30px;">
<ul id="u1">
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
<input type="button" value="Click" id="b1"/>
</body>
</html>
相关推荐
### 总结 jQuery MX-9 是Dreamweaver开发环境中的一款强大工具,它将jQuery的强大功能与Dreamweaver的便捷性相结合,提高了前端开发的效率和质量。无论你是初级开发者还是经验丰富的专业人士,都可以通过这款插件...
总结来说,jQuery X-Menu 是一个功能强大且易于定制的菜单解决方案,利用 jQuery 的强大功能为网页提供美观、响应式的导航菜单。通过理解其核心概念、HTML 结构、CSS 样式和 JavaScript 交互,开发者可以轻松地将它...
总结,jQuery 3.2.1版是一个更加精炼和现代的版本,尽管移除了`jQuery.holdReady()`和`jQuery.isArray()`,但其核心功能依然强大且全面。开发者应利用jQuery提供的API,结合最新的JavaScript特性,构建高性能、易...
总结,jQuery UI 1.8.6 是一款强大的前端开发工具,它以其丰富的组件、优雅的样式和良好的可定制性,极大地提高了开发效率和用户体验。无论是新手还是经验丰富的开发者,都能从中受益,轻松实现网页的互动效果。
在Web开发领域,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理和Ajax交互等任务。然而,随着JavaScript语言和浏览器标准的不断发展,某些旧版jQuery代码可能不再兼容新的JavaScript特性或API。...
总结起来,jQuery UI 1.10.3 自定义版本中的日期插件提供了灵活的日期选择功能,通过适当的配置,可以满足各种复杂的业务需求。同时,通过与其他插件的配合,还能实现日期时间的联合选择,为用户带来更便捷的操作...
然后,通过jQuery事件监听和DOM操作,我们可以监听用户的输入事件,动态更新下拉列表的显示状态。以下是一个基本的实现示例: ```html <select id="combo-select"> <option value="option1">Option 1 ...
在JavaScript的世界里,jQuery是一个广泛使用的库,它极大地简化了DOM操作、事件处理、动画效果和Ajax交互。本文将深入探讨两个重要的jQuery版本文件:`jquery-1.4.1-vsdoc.js`和`jquery-1.4.2.min.js`,了解它们的...
总结,jQuery UI 1.10.0 自定义版本为开发者提供了强大的界面组件和高度可定制的主题,通过合理选择和配置,可以构建出高效、美观且易用的 Web 应用。在实际项目中,掌握 jQuery UI 的使用不仅能提升开发效率,也能...
总结,`jQuery UI`和`jQuery Easy-UI`都是为了提升网页交互体验和设计美感的工具。jQuery UI提供了丰富的组件和自定义主题,适合需要深度定制的项目;而jQuery Easy-UI则更注重易用性和快速开发,适用于希望快速搭建...
总结,jQuery-File-Upload是实现现代Web应用中高效、用户友好的文件上传功能的理想选择。通过深入了解其工作原理和配置方法,我们可以将其优势充分发挥,提升用户体验。同时,结合合理的服务器端处理和安全措施,...
总结来说,jQuery 2.0.0是一个面向现代浏览器的高性能库,其精简的代码和强大的功能为开发者带来了极大的便利。在实际开发中,结合合理的优化策略,可以大幅提升Web应用的用户体验和开发效率。无论是初学者还是经验...
总结,`jQuery-Timepicker-Addon`作为一款强大的时间选择插件,不仅提供了分钟级别的选择,还具有高度的可定制性和灵活性,对于需要时间输入的Web应用来说,是一个非常实用的工具。开发者可以根据项目需求进行调整和...
总结,jQuery 3.0.0作为一款成熟的JavaScript库,不仅在功能上满足了开发者的需求,还在性能和兼容性上做了大量优化。无论是在小规模的个人项目,还是大型的企业级应用,jQuery都能展现出其强大而实用的一面。通过...
总结来说,jQuery和jQuery UI是强大的前端工具,它们大大提高了Web开发的效率和用户体验。通过熟练掌握这两个库,开发者可以构建出功能丰富、交互性强的网页应用。同时,了解和使用提供的文件资源,有助于更深入地...
总结,jQuery UI 1.11.4是一个强大且全面的前端UI框架,它提供了多种用户界面元素和交互效果,极大地扩展了jQuery的功能。开发者可以通过简单易用的API,快速构建功能丰富的、具有良好用户体验的Web应用。无论是在...
总结,jQuery 1.11.0和jQuery UI 1.10.4是Web开发的强大工具,它们简化了JavaScript编程,提供了丰富的UI组件,帮助开发者构建出互动性强、用户体验佳的网页应用。在不断变化的前端技术环境中,理解和掌握这两个库的...
总结,jQuery 1.4.2是JavaScript开发中的一个重要里程碑,它的API设计和功能对后续的前端库产生了深远影响。虽然现在有更新的版本可用,但理解并掌握1.4.2的基础知识对于了解jQuery的历史和原理仍然是有益的。同时,...
在Web开发领域,jQuery UI是一个广泛使用的JavaScript库,它扩展了基础的jQuery功能,提供了丰富的用户界面组件,如日期选择器、对话框、拖放操作等。jQuery UI的核心特性之一就是其可定制的主题系统,允许开发者...
在JavaScript开发中,jQuery是一个广泛使用的库,它极大地简化了DOM操作、事件处理、动画效果以及Ajax交互。在针对Visual Studio的开发环境中,jQuery提供了vsdoc.js文件,这是一个特殊的文档文件,为开发人员在IDE...