jQuery学习笔记(一)
程序代码
window.onload = function(){ ... } .
访问HTML文档的元素,必须先载入文档对象模型(DOM)。当window.onload函数执行的时候,说明所有东西已经载入,包括图像和横幅等等。要知道较大的图片下载速度会比较慢,因此用户必须等待大图片下载完毕才能看到window.onload()执行的代码效果,这样就花费了很长的等待时间,这不是我们想要的。
对于此,jquery提供了一个"ready"事件,你可以使用以下的代码片段:
程序代码
$(document).ready(function(){
// 你的代码
});
$(document)意思是说,获取整个网页文档对象(类似的于window.document),$(document).ready意思就是说,获取文档对象就绪的时候。
上面这段代码的意思是检查文档对象直到它能够允许被操作(译者注:这样做比window.onload()函数要快的多,因为只要文档对象载入完成就能够执行代码了,而不需要等待页面中的图片下载是否已经完成)---这是我们想要的。
1,demo1:
鼠标点击时的触发
首先,我们尝试鼠标点击超链接时触发某些行为。在ready函数里加入以下代码:
程序代码
$("p").click(function(){
alert("hello world");
});
2,demo2:
增加 CSS Class
另外一个事情就是,一个共同的任务:增加或移除元素的css class,例如:
程序代码
$("a").addClass("test");
$("a").removeClass("test");
那么当你调用了addClass函数后,所有超链接的字体将变成粗体。
使用jQuery的一般步骤:
1,首先把JQ导入.
2,然后开始写函数了。$(document).ready(function(){});
3,获取标签能直接 $("标签")。给标签添加onclick事件直接可以 click.
4,核心代码:
$("#head").click(function(){$(".content").addClass("c_style");});
5,功能:通过单击id为control的元素改变id为box元素的样式
知识点:addClass()添加样式
3,demo3:
show( )和html()的使用
$("a").addClass("test").show().html("foo");
程序解释:
首先增加test样式,
然后show( ):显示隐藏的匹配元素。
接着html("foo"):设置每一个匹配元素的html内容
4,demo4:
特效hide()
$("a").click(function(){
$(this).hide("slow");
return false;
});
程序解释:
点击超链接,超链接就会慢慢的消失。
“return false"表示保留默认行为,因此页面不会跳转。
5,demo5:
demo5-收缩展开功能
$("#head").click(function()
{$("#content").slideToggle("slow",function(){ alert("Hello,cssrain..");});
});
程序解释:
1,首先把JQ导入.
2,然后开始写函数了。$(document).ready(function(){});
3,前面说过了,获取标签能直接 $("标签")。给标签添加 onclick事件直接可以 click.
4,核心代码:
$("head").click(function(){$("content").slideToggle("slow");});
5,slideToggle(speed, callback)
通过高度变化来切换所有匹配元素的可见性,并在切换完成后可选地触发一个回调函数。
这个动画效果只调整元素的高度,可以使匹配的元素以“滑动”的方式隐藏或显示。
6,demo6:
appendTo的用法
$('.btn1').click(function(){
$('<b>这是添加appendTo到p里面的内容</b>').appendTo('p');
});
程序解释:
定义和用法
appendTo() 方法在被选元素的结尾(仍然在内部)插入指定内容。
提示:append() 和 appendTo() 方法执行的任务相同。不同之处在于:内容和选择器的位置,以及 append() 能够使用函数来附加内容。
7, demo7:
表格隔行变色, 鼠标滑过变色,点击变色.
// 鼠标经过
$('.list li').mouseover(function(){
$(this).addClass('hover');
});
// 鼠标移开
$('.list li').mouseout(function(){
$(this).removeClass('hover');
});
// 隔行变色
$('.list li:even').addClass('lightblue');
// 点击变色
$('.list li').click(function(){
$(this).toggleClass('click').removeClass('lightblue');
});
代码解释:
例子中用了:mouseover(),addClass(),mouseout(),removeClass(),click(),
toggleClass(),tr:even 等方法。
8,demo8:
toggle( )的用法:
$("tittle").toggle(function(){
$(".content").hide('slow');
},function(){
$(".content").show('fast');
});
切换元素的可见状态。
如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。
9,demo9:
hover()的用法:
Hover(function over ,function out )
一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法.
Table里也可以用。
$(document).ready(function() { $("#orderedlist li").hover(function() { // $("#orderedlist li:last").hover(function() { $(this).addClass("blue"); }, function() { $(this).removeClass("blue"); }); });
10,demo10:
忘记说了
其实$(document).ready(function(){
// 你的代码
});
中的$ 也可以用 jQuery代替
jQuery(document).ready(function(){
jQuery(".").click(function(){jQuery(this).toggleClass("")})
});
代替有什么好处呢? 有可能你会用其他的js库,象prototype也是$, 有可能会冲突。
所以用jQuery代替$是比较安全的写法。
还有就是:
$(document).ready(function(){ // }); 的缩写法: $( function() { // } );
11,demo11:
each—find的用法:
html代码:
<ul id="orderedlist"> <li>a</li> <li>b</li> <li>d</li> <li>e</li> <li>f</li> <li>g</li> <li>h</li> </ul> <ul id="ordered"> <li>a</li> <li>b</li> <li>d</li> <li>e</li> <li>f</li> <li>g</li> <li>h</li> </ul>
js代码:
$('#ordered').find('li').each(function(i){
$(this).html($(this).html() + ' 对应的索引值是:' + i);
});
each() 方法规定为每个匹配元素规定运行的函数。
提示:返回 false 可用于及早停止循环。
12,demo12:
jQuery parent() 方法
parent() 方法返回被选元素的直接父元素。
该方法只会向上一级对 DOM 树进行遍历。
// $('.list').find('span').parent('p').css({'color':'red','border':'1px solid red'}); //设置多个 CSS 属性/值对 $('.list').find('span').parent('p').css('color','red'); //返回第一个匹配元素的 CSS 属性值。
jQuery parents() 方法
parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)。您也可以使用可选参数来过滤对祖先元素的搜索。如下:
$('.list').find('span').parents('ul').css('color','red');