﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-网摘-文章分类-JQuery</title><link>http://www.blogjava.net/jvict/category/43108.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 15 Dec 2009 06:30:38 GMT</lastBuildDate><pubDate>Tue, 15 Dec 2009 06:30:38 GMT</pubDate><ttl>60</ttl><item><title>JQuery初步</title><link>http://www.blogjava.net/jvict/articles/305984.html</link><dc:creator>Documents</dc:creator><author>Documents</author><pubDate>Tue, 15 Dec 2009 01:30:00 GMT</pubDate><guid>http://www.blogjava.net/jvict/articles/305984.html</guid><wfw:comment>http://www.blogjava.net/jvict/comments/305984.html</wfw:comment><comments>http://www.blogjava.net/jvict/articles/305984.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jvict/comments/commentRss/305984.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jvict/services/trackbacks/305984.html</trackback:ping><description><![CDATA[<p>原文：http://yuninglovekefan.blog.sohu.com/131108259.html<strong><br />
1 资源</strong></p>
<p>&nbsp;</p>
<p>下载jquery源代码 <a href="http://docs.jquery.com/Downloading_jQuery"><span style="color: #108ac6">http://docs.jquery.com/Downloading_jQuery</span></a></p>
<p>&nbsp;</p>
<p>2 调用</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 使用&lt;script type="text/javascript" src="lib/jquery.js"&gt;&lt;/script&gt; 根据个人jquery.js文件的路径不同改变 src的值</p>
<p>&nbsp;&nbsp;&nbsp; 如果你使用外部文件custom.js调用jquery，使用&lt;script type="text/javascript" src="lib/custom.js"&gt;&lt;/script&gt;</p>
<p>同样是根据路径的不同更改src</p>
<p>&nbsp;&nbsp;&nbsp; 使用$(document).ready(function(){ //your code });包含jquery代码</p>
<p>&nbsp;</p>
<p>3 jquery 官方网站 <a href="http://jquery.com/"><span style="color: #108ac6">http://jquery.com/ </span></a></p>
<p>&nbsp;</p>
<p>4 jquery 中文社区 <a href="http://bbs.jquery.org.cn/frame.php?frameon=yes&amp;referer=http%3A//bbs.jquery.org.cn/thread-8-1-1.html"><span style="color: #108ac6">http://bbs.jquery.org.cn/frame.php?frameon=yes&amp;referer=http%3A//bbs.jquery.org.cn/thread-8-1-1.html</span></a></p>
<p>&nbsp;</p>
<p><a href="http://bbs.51js.com/viewthread.php?tid=79244"><span style="color: #108ac6">http://bbs.51js.com/viewthread.php?tid=79244 </span></a></p>
<p>&nbsp;</p>
<p>5 $()函数是一个工厂即工厂函数，是一个基本的创建块，选择文档的一部分，即得到的是一个元素</p>
<p>&nbsp;&nbsp; a tag name&nbsp;&nbsp; : $("p");</p>
<p>&nbsp;&nbsp; an ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : $("#some-id");</p>
<p>&nbsp;&nbsp; a class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : $(".some-class");</p>
<p>&nbsp;&nbsp; 获得子节点元素: $("#some-id &gt; li ");</p>
<p>&nbsp;&nbsp; 给不含某个类名的其他的标签付class ：$("#some-id li:not(.some-class)").addClass("some-other-class");</p>
<p>&nbsp;&nbsp; 就是给li标签中class不是some-class的定义一个class some-other-class</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; 当存在多个Js库的时候$()标签可能会产生误解，因为其是js通用的标签，这时要使用jQuery代替$</p>
<p>&nbsp;</p>
<p>6 添加类 $("").addClass("类名"); 删除类$("").removeClass("类名");</p>
<p>&nbsp;</p>
<p>7 jQuery 允许我们确定函数调用的时间，DOM 被加载后才调用。使用$(document).ready() 结构，不需要等图像加 </p>
<p>&nbsp;&nbsp; 载。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>8 如何学习</p>
<p>&nbsp;</p>
<p>初学，动手要勤于动脑(光看). <br />
<br />
以demo为蓝本，一点一点的改，确保每一部修改都能运行。 一段时间后，你就会逐步掌握了。 <br />
<br />
不要急，初学任何东西都是这样的！</p>
<p>&nbsp;</p>
<p><strong>第二章 选择器-得到你想要的</strong></p>
<p>&nbsp;</p>
<p>1 css选择器</p>
<p>参见第一章中的 5</p>
<p>&nbsp;</p>
<p>2 Xpath路径选择器</p>
<p>1）得到具有某个属性的标签：$('a[@title]'); 得到函数属性title的a标签</p>
<p>2）得到具有某个标签的标签：$('div[ol]'); 用来得到含有ol标签的div标签</p>
<p>3）正则表达式：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 已知标签的开头：$('a[@href^="malito:"]'); 得到href属性以mailto:开头的a标签 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 已知标签的末尾：$('a[@href$=".pdf"]');得到href属性以.pdf为结束的a标签</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 已知标签中的任意位置含有的字符 ：$('a[@href*="mysit.com"]');得到href属性中含有mysite.com字符的a标签</p>
<p>3 自定义选择器</p>
<p>1）得到一个对象或数组中的第二项：$('div.horizontal:eq(1)');得到样式class为horizontal的所有标签集合中的第二项</p>
<p>2) 得到任何div的父亲的第一个孩子：$('div:nth-child(1)'); ??</p>
<p>&nbsp;</p>
<p>4 样式化交替的行</p>
<p>：odd 奇数行 $("tr:odd").addClass('some-class1')&nbsp;&nbsp; &nbsp;&nbsp; 给tr标签中的奇数行赋予样式some-class1</p>
<p>：even 偶数行 $("tr:even").addClass('some-class2') 给tr标签中的偶数行赋予样式some-class2</p>
<p>注意，在一个页面中如果有超过一个表格的话，或许这不是我们想看到的结果。例如，既然<br />
在这个表格的最后一行有一个灰蓝的背景，那 么在下一个表格的第一行将会有一个灰黄的背<br />
景。在第7章我们会研究如何避免这类问题。</p>
<p>&nbsp;</p>
<p>:contains("string") 得到含有的字符串的标签的文本 $('td.contains("Henry")').addClass("some-class") 得到文本中含有Henry字符串的td标签,然后将some-class对应的样式赋给它</p>
<p>&nbsp;</p>
<p>5 DOM遍历方法</p>
<p>&nbsp;</p>
<p>参见书上的示例</p>
<p>$("th").parent().addClass("heading_line");<br />
$("tr:not([th]):odd").addClass('odd');<br />
$("tr:not([th]):even").addClass('even');</p>
<p>$('td:contains("Henry")').next().addClass('highlight')?</p>
<p>&nbsp;</p>
<p>1) 得到父节点：$("th").parent() 例：设置单独的行，利用单独行的子标签的找到其标签 即 $("th").parent().</p>
<p>&nbsp;&nbsp;&nbsp; addClass("some-class")；增加类名到达样式特殊化的效果</p>
<p>2) 得到特殊行以外的兄弟节点：使用not([]) 例 ：排除统一标签的特殊行 $("tr:not([th])");</p>
<p>3) 得到下一个兄弟节点&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ：使用.next() 例 ：参见上面</p>
<p>4) 得到一个标签后面的兄弟节点：使用.sibling(); 例 ：$('td:contains("Henry")').siblings().addClass('highlight')?</p>
<p>5) gt()和eq(); 例 ：$('td').parent().find('td:gt(0)') .addClass('highlight')? 得到td父标签，然后找到父标签的td</p>
<p>&nbsp;&nbsp;&nbsp; 子标签，并过滤掉第一个td子标签，$('td:contains("Henry")').parent().find('td:eq(1)').addClass( 'highlight')</p>
<p>&nbsp;&nbsp;&nbsp; 这个是得到上面所描述的第二个td子标签</p>
<p>&nbsp;</p>
<p>6 访问DOM元素</p>
<p>&nbsp;</p>
<p>1) get():得到元素，相当于document.getElementById() 如果要访问第一个元素用.get(0),如果有多个元素的话使用.</p>
<p>&nbsp;&nbsp;&nbsp; get(index)来选择，如果我们想知道 id 为#myelement 的元素的 tag name 的话，可以用：$('#myelement').</p>
<p>&nbsp;&nbsp;&nbsp; get(0).tagName,为了方便可以使用如下的方式$('#myelement')[0],同上面是一样的</p>
<p>&nbsp;</p>
<p><strong>第三章 事件——扣动扳机</strong></p>
<p>3.1 在页面加载后执行任务</p>
<p>1 $(document).ready(function(){}); 使用这个在页面加载的时候执行js语句，相当于window.onload，可执行多个</p>
<p>&nbsp;&nbsp; 函数 function aa(){} function bb(){} $(document).ready(function(){aa();bb()})是有效的</p>
<p>&nbsp;</p>
<p>3.2 简单的事件</p>
<p>1 对于JS的综合的考虑：遵循渐进增强的原则，页面的样式转换器应该能够在javascript无效时隐藏起来，甚至跟好的是，</p>
<p>&nbsp;&nbsp; 能够通过链接，到当前页面的替代版本而能起到应有的作用</p>
<p>&nbsp;</p>
<p>2 书上是通过一个改变样式的示例来阐述如何执行一个事件，具体的请参考书</p>
<p>&nbsp;</p>
<p>3 .bind() : 执行事件的函数 示例：$(document).ready(function(){$(#id).bind('click',function(){ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('body'.addClass('some-class');)});});</p>
<p>可以捆绑多个触发事件，这个示例是通过事件来改变不同的样式，可以添加也可以删除removeClass('some-class');</p>
<p>&nbsp;&nbsp;&nbsp; jquery有简写的方法，就是不用.bind直接接事件 ，$('#id').click(function(){});这种方式是比较常用的</p>
<p>&nbsp;</p>
<p>4 环境关键字this :当触发任何事件的时候（这里是onclick事件）,关键字this引用的都是携带相应行为的dom元素，这个</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 就相当于，我们在html中使用的&lt;a id="alist" onclikc="change('this')"&gt;的效果是相同的</p>
<p>&nbsp;</p>
<p>5 书上通过环境关键字this，<span style="color: #ff0000">简化了jquery代码</span> ，并使用多个函数中具有相同功能的代码归并在一个函数中，具体的流程参</p>
<p>&nbsp;&nbsp; 见书上29-32页</p>
<p>&nbsp;</p>
<p>3.3 复合事件</p>
<p>&nbsp;</p>
<p>1 Jquery中自定义的事件处理程序.ready() , .toggle() , .hover() 后两个成为复合事件处理程序</p>
<p>&nbsp;</p>
<p>3.3.1 显示和隐藏内容特性</p>
<p>&nbsp;</p>
<p>1 两个函数 .toggle()和toggleClass() ，toggle()可以执行两种交替的样式变换，如果只是隐藏最好的方法是使用后者</p>
<p>&nbsp;&nbsp; 示例：$('#id').toggle(function(){$('#id/.class').addClass('hidden')},function(){$('#id/.class').removeClass('hidden')};,)</p>
<p>&nbsp;</p>
<p>$('#id').click(function(){$('#id/class').toggleClass('hidden')};) toggleClass方法是自动检查该类是否存在，存在删除，不存在添加，这个方法是很好用的</p>
<p>&nbsp;</p>
<p>3.3.2 </p>
<p>&nbsp;</p>
<p>1 jquery实现的点击触发事件的标签可以不被限制在a标签和button按钮的范围，也就是说div标签也是可以执行.</p>
<p>&nbsp;&nbsp;&nbsp; toggle()方法的，还可以执行toggleClass();和.hover()，就像是鼠标划过一样</p>
<p>&nbsp;</p>
<p>2 .hover() 示例：类似.toggle() 也是有两个函数 $('#id').hover(function(){$('#id/.class').addClass('class')},function(){$('#id/.class').removeClasss('class')});</p>
<p>&nbsp;</p>
<p>3.3.3 事件扑获和事件冒泡机制，jquery会在事件冒泡阶段注册事件处理程序,首先相应事件的是最具体的元素，然后会向上冒泡到最外层的父元素。</p>
<p>&nbsp;</p>
<p>3.3.4 .hover()可以解决事件冒泡机制带来的错误，所以使用.hover来代替mouseout();mouseover();</p>
<p>&nbsp;</p>
<p>3.4 限制和终止事件</p>
<p>&nbsp;</p>
<p>1 当使用onclick处理事件时，有必要对事件的作用范围进行限制.这时就要给事件函数传递一个参素就是event事件类</p>
<p>&nbsp;</p>
<p>2 event.target：事件目标。这个事件的目标可以确定点击事件赋予的元素即$('#id')...中的id,而不会产生冒泡的事件， </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 避免其他的元素相应这个事件</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实例：$('#div-id').click(function(event){if(event.target==this){(折叠的效果)}})就是说在没有&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个判读的时候，div-id代表的标签下的所有的元素标签都可以执行折叠的效果，加上这个就可以控制只&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有点击id为div-di的标签是才能执行折叠的的效果</p>
<p>&nbsp;</p>
<p>3 event.stopPropagation():避免所有的元素都相应这个事件</p>
<p>&nbsp;</p>
<p>4 阻止默认事件操作，使用preventDefault();和返回false:,默认事件操作是指比如，点击a按钮转到相应的链接，提交表 </p>
<p>单submint,转向到action指定的页面</p>
<p>&nbsp;</p>
<p>5 事件传播和默认操作是相互独立的两套机制，stopPropagation();是阻止事件传播，而preventDefault()是阻止默认&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp; 操作的执行，而返回false是两者的结合；</p>
<p>&nbsp;</p>
<p>6 unbind：反绑定，即接触事件操作，有利于控制冒泡。反绑定简写的方式现在不在使用</p>
<p>&nbsp;</p>
<p>7 .one()函数不好用</p>
<p>&nbsp;</p>
<p>8 .trigger()：程序加载是执行的事件处理程序，在这里就是，当页面信息加载完成后执行折叠页面的效果</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 示例：$('#id').trigger('click');这里的id要和事件加载的id值保持一致$('#id').click();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 简写：事件触发函数没有任何的参数，即$('#id').click();</p>
<p>&nbsp;</p>
<p><strong>第四章 效果—为操作添加艺术性</strong></p>
<p>&nbsp;</p>
<p>4.1 修改内联css</p>
<p>&nbsp;</p>
<p>1 .css:读取已经存在的样式和添加样式，如果不是动态的改变样式的值的情况下，添加固定的样式类则和使用.addClass&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是一样的，如果需要添加不断更新的类的属性的时候需要使用.css</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 示例：$('#id').css('property','value'); 多个属性$('#id').css({'property':'value','property1','vlaue1'})</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以后每章具体的示例参见手册 .css('cursor','pointer')</p>
<p>&nbsp;</p>
<p>2 parseFloat()：从字符串中读取数字</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 示例 paresFloat("a2355",10)= 2355;这里面的10含义是确保为十进制数</p>
<p>&nbsp;</p>
<p>3 slice()：从指定的位置开始读取字符串</p>
<p>&nbsp;</p>
<p>4 $('#id')[0].id：得到的是指定元素的id的值,因为使用$('#id')是创建一个jquery对象，所以要使用下标值</p>
<p>&nbsp;</p>
<p>5 书上的示例在ie中是无效的？？</p>
<p>&nbsp;</p>
<p>4.2 基本的隐藏和显示</p>
<p>&nbsp;</p>
<p>1 .hide()：隐藏元素下的内容</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 示例 $('#id').hide();</p>
<p>2 .show()：显示内容</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 示例 $('#id').show();</p>
<p>&nbsp;</p>
<p>4.3 速度和效果</p>
<p>&nbsp;</p>
<p>1 速度参数：.show('slow') .show('normal') .show('fast') 速度分别是0.6 0.4 0.2 秒，也可以使用具体的秒数，但&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要注意不能加引号，.show(850) ，<span style="color: #ff0000">show和hide会同事修改多个样式，包括高度，宽度和不透明度</span></p>
<p>&nbsp;</p>
<p>2 淡入淡出：.fadeIn('slow') 淡入&nbsp;&nbsp;&nbsp; fadeOut(2000) 淡出</p>
<p>&nbsp;</p>
<p>4.4 多重效果</p>
<p>&nbsp;</p>
<p>1 fadeIn和fadeOut:不透明度</p>
<p>&nbsp;</p>
<p>2 fadeTo:不透明度 示例fadeTo('slow',0.5),将不透明减退到0.5</p>
<p>&nbsp;</p>
<p>3 slideDown()和slideUp()：高度，slideUp('slow');向上折叠</p>
<p>&nbsp;</p>
<p>4 animate():多重效果的自定义动画，包含四个参数，a:属性和样式映射，类似.css()，b:速度参数，c：可选的缓动类型</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d：可选的回调函数，参数可以是任意的组合</p>
<p>&nbsp;</p>
<p>5 通过CSS设置定位：在没有设置position的值时，所有的块级元素默认的css定位属性都是static,这个属性明确的告诉我&nbsp;&nbsp; 们在改变元素的定位属性，即使用position:定义位置，之前试图移动他们是没有作用的</p>
<p>&nbsp;&nbsp; 参见示例</p>
<p>&nbsp;</p>
<p>6 w3c中的css规范中的盒模型可以在http://www.w3.org/TR/REC-CSS2/box.html 中找到</p>
<p>7 获得各种宽度：.width(),按钮的宽度：$button.width(),边界的宽度：.css('paddingLeft'),.css('paddingRight')，</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 边的宽度：.css('borderRightWidth'),.css('borderLeftWidth');</p>
<p>&nbsp;</p>
<p>4.5 并发和排队</p>
<p>&nbsp;</p>
<p>1 排队效果就是使用.链接各种效果 ：示例 .padeTo('slow',0.5).slideUp('slow')</p>
<p>&nbsp;</p>
<p>2 对于非效果方法，排队的效果并不适用于他们，如.css('backgroundColor','#f00');无论放在哪都会先执行</p>
<p>&nbsp;</p>
<p>3 对于非效果方法，是同时发生的</p>
<p>&nbsp;</p>
<p>4 回调函数：可以使用回调函数来排列非效果方法</p>
<p>&nbsp;</p>
<p>5 得到一个元素的兄弟节点，$(this).next();</p>
<p>&nbsp;</p>
<p>6 在使用$(this).next.slideShow('slow',function(){ 在这里面再次使用$(this)时就是代表的是兄弟节点})，如果不想</p>
<p>是兄弟节点，那么就要在外面将$(this)赋予一个变量后再使用，var $thisPara =&nbsp;&nbsp;</p>
<p>$(this)(<span style="color: #ff0000">如果要想在ie中好用</span> ，就要现定义$thisPara=Object();,后在赋值就好用了),$thisPara.next.slideShow</p>
<p>('slow',function(){这时使用$thisPara就不是兄弟节点了})</p>
<p>&nbsp;</p>
<p><strong>第五章 DOM操作——基于命令改变页面</strong></p>
<p>&nbsp;</p>
<p>1 在网页中创建元素，属性和文本</p>
<p>&nbsp;</p>
<p>5.1 操作属性</p>
<p>&nbsp;</p>
<p>1 .each()：类似for循环，方法带有index参数，类似循环计数器，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 示例：$('#id').each(function(index){$(this).attr({'id','id'+index})})</p>
<p>&nbsp;</p>
<p>2 .text()：获取文本属性的值</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 示例：$('#id a').text();</p>
<p>&nbsp;</p>
<p>3 $('div.chapter a[@href*=wikipedia]').each()：这个是更确定作用的范围，具体的含义参看第二章</p>
<p>&nbsp;</p>
<p>4 .attr()：添加属性，示例 .attr({'rel','external'})</p>
<p>&nbsp;</p>
<p>5.2 插入新元素</p>
<p>&nbsp;</p>
<p>1 $()：这个工厂方法的用处是在括号中的元素如果存在则，读取，如果不存在则创建新的元素。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如：$(&lt;a href="http://www.sina.com"&gt;aa&lt;/a&gt;)</p>
<p>&nbsp;</p>
<p>2 .insertAfter(),after(),insertBefore(),before() ：用于插入新元素，insertAfter()和after()的不同之处是</p>
<p>&nbsp;&nbsp;&nbsp; $('&lt;a href="#top"&gt;back to top &lt;/a&gt;').insertAfter('div.chapter p');</p>
<p>&nbsp;&nbsp;&nbsp; $('div.chapter p').after('&lt;a href="#top"&gt;back to top &lt;/a&gt;');</p>
<p>&nbsp;&nbsp;&nbsp; 可以看到只是位置的不同，但就是这个不同在实现连缀其他方法的操作中，前者是对a元素做更多的操作，后者是对所选</p>
<p>&nbsp;&nbsp;&nbsp; 择的元素进行连缀操作，所以方便还是前者。</p>
<p>&nbsp;</p>
<p>3 eq()和gt()：gt和eq的区别是gt作用于给定位置之后的元素，eq作用于当前元素</p>
<p>&nbsp;</p>
<p>5.3 移动元素</p>
<p>&nbsp;</p>
<p>1 <span style="color: #ff0000">什么叫隐式迭代</span></p>
<p>&nbsp;</p>
<p>2 使用insertAfter和insertBefore插入，移动元素，那么注脚的次序就会被颠倒 参见示例，这两个插入都是在div标签之</p>
<p>&nbsp;&nbsp; 外，即&lt;div&gt;&lt;/div&gt;+insertAfter之后</p>
<p>&nbsp;</p>
<p>3 $A.appendTo('#id')：将内容插入到指定的元素中，即在div标签里面</p>
<p>&nbsp;&nbsp; $A.append('B')：也是将内容插入到指定的元素中，两者的区别是前者是把A追加到#id中，后者是相反，把B追加到A</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 中，实际上执行的是appendChild操作，<span style="color: #ff0000">添加为最后一个子结点</span></p>
<p>&nbsp;</p>
<p>4 $a.prependTo($b)：将a的内容移动到b标签中</p>
<p>&nbsp;&nbsp; $a.prepend($b)&nbsp;&nbsp;&nbsp; ：将b的内容移动到a标签中，相当于appendChild();<span style="color: #ff0000">添加为第一个子节点</span></p>
<p>&nbsp;</p>
<p>5.4 包装元素</p>
<p>&nbsp;</p>
<p>1 $a.wrap(&lt;li&gt;&lt;/li&gt;)：将内容a装入标签li中，即在$a的外层添加一个标签，例如可以是div,参见示例</p>
<p>&nbsp;</p>
<p>5.5 复制元素</p>
<p>&nbsp;</p>
<p>1 $a.clone().$b：将a复制到b处</p>
<p>&nbsp;</p>
<p>2 $a.clone(false).$b：只会复制标签元素a里面的文本内容将不会复制</p>
<p>&nbsp;</p>
<p>3 5.5.2 1 ：使用样式定位元素内容</p>
<p>&nbsp;</p>
<p>4 .prependTo()和.prepend()参见5.3</p>
<p>&nbsp;</p>
<p>5 $a.find('b')：找到正在处理的元素a的后代元素的好方法,b可以是标签，id，class值</p>
<p>&nbsp;</p>
<p>6 $a.html('b')：使用b替换a标签中的所有的内容,不能用于xml文档</p>
<p>&nbsp;</p>
<p>7 $a.b.end().appendTo(c)：end()是结束所有的进阶，回到最原始的处理元素，a,一般用作将a元素处理一系列操作</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 后，插入到c的子元素中</p>
<p>&nbsp;</p>
<p>8 $a.text() ：得到元素a中所有的文本，取出html标签</p>
<p>&nbsp;</p>
<p>5.6 DOM操作方法的归纳</p>
<p>&nbsp;</p>
<p>1 $('p').empty()：删除元素中所有的子节点</p>
<p>&nbsp;</p>
<p>2 $a.text('b') ：使用文本b替换a元素中的内容</p>
<p>&nbsp;</p>
<p>3 $a.remove()：删除a标签及其所有的子结点，$a.remove('.class')：删除a标签中类是class的元素及其所有的子结点</p>
<p><strong><br />
</strong></p>
<p><strong>第六章&nbsp;&nbsp; AJAX 让网站与时俱进</strong></p>
<p>6.1 基于请求加载数据</p>
<p>&nbsp;</p>
<p>1 $a.load('b')：加载数据，引入html文件片段，b可以是函数，是一个Html文件的ur，a是引入的标签</p>
<p>&nbsp;</p>
<p>2 $.each()：这个和$a.each()的区别是后者只能迭代和执行jquery对象的函数，前者可以用于迭代任何对象和数组</p>
<p>&nbsp;</p>
<p>3 $.getJSON()：读取json文件，产生一个回调函数得到Json文件里面的数据，然后使用$.each()来取得输出的内容，只</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是有一个问题在文件当中得到的始终不是一个json格式，而是把其当作字符串来处理，就是没有实现书上</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 面的示例</p>
<p>&nbsp;</p>
<p>4 $.getScript('b')：得到调用的b.js文件</p>
<p>&nbsp;</p>
<p>5 $.get()：用get方式请求装入页面.主要是读取xml文件和向php文件中传递值和读取回调函数</p>
<p>&nbsp;</p>
<p>6.2 选择数据格式</p>
<p>&nbsp;</p>
<p>1 数据格式共有四种：就是6.1 中的 1 3 4 5具体采用何种方式要符合你的应用</p>
<p>&nbsp;</p>
<p>2 应用：</p>
<p>&nbsp;&nbsp; html 片段：是最简单的，在不需要与其他应用程序共享数据的情况下使用</p>
<p>&nbsp;&nbsp; json：在性能和文件的大小上具有优势，易于重用。</p>
<p>&nbsp;&nbsp; javascript：对数是不推荐使用的，优势是可以将很少用到的行为提取到外本文件中去，减少加载的页面的代码量</p>
<p>&nbsp;&nbsp; xml：具有非常强大的可移植性，如果未知远程应用程序的时候，XML可提供很好的互操作性，缺点是过于庞大</p>
<p>&nbsp;</p>
<p>6.3 向服务器传递数据</p>
<p>&nbsp;</p>
<p>1 执行GET请求，就是在按钮或链接处，调用目标php文件的时候，在url的后面添加上？para参数，然后通过$.get()方法&nbsp;&nbsp; 传递参数给php文件，示例中使用的是$.get()方法，也可以把结果组织成json使用$.getJSON()的方法</p>
<p>&nbsp;</p>
<p>2 执行post请求：1）可以与$.get()互换 2）使用$.load（）方法简化，因为其默认的传递方式就是post,示例中的.load</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ()方法没有解决 rerurn false的问题</p>
<p>&nbsp;</p>
<p>3 关于form的操作</p>
<p>&nbsp;&nbsp; 1) $a.submit()：对提交表单的事件进行操作，类似于$a.click()</p>
<p>&nbsp;&nbsp; 2) .val()：获取input标签中的value的值，如果里面有参数那么就是替换input中的value的值</p>
<p>&nbsp;&nbsp; 3) .serialize()：将input元素的内容连接成一个请求字符串，<span style="color: #0000ff">示例中还是有些问题</span></p>
<p>&nbsp;&nbsp; 对form的操作还是选用form.js插件</p>
<p>&nbsp;</p>
<p>6.4 关注请求</p>
<p>&nbsp;</p>
<p>1 $a.ajaxStart()：在AJAX开始执行是调用的函数</p>
<p>&nbsp;</p>
<p>2 $a.ajaxStop()：在AJAX最后一次请求活动结束时调用的函数</p>
<p>&nbsp;</p>
<p>3 页面加载缓慢时候的处理，即先显示一个加载信息的图示，还有加载过后的显示信息的效果见示例</p>
<p>&nbsp;</p>
<p>6.5 AJAX和事件</p>
<p>&nbsp;</p>
<p>1 当再给页面中的h3&nbsp;&nbsp; 标签设置点击高亮的时候，由加载产生的字典标题的标签也是h3,但点击时并不会产生高亮的效果，</p>
<p>&nbsp;&nbsp; 这是因为在加载时字典的词条还不是DOM的一部分，因此不会为他们绑定事件处理程序，解决，绑定的元素单独绑定自</p>
<p>&nbsp;&nbsp; 己的事件处理函数，也就是说将事件处理函数设置成一个独立的函数，在页面显示和页面加载的内容里面都调用这个函数</p>
<p>&nbsp;&nbsp; 就可以了</p>
<p>&nbsp;</p>
<p>2 以上说明了如果只是给页面的时间单独增加事件的话，页面加载的内容在相同的情况下是不会执行此事件的。</p>
<p>&nbsp;</p>
<p>3 双触发情况，就是有时在点击h3标签的时候会两次触发绑定事件这样就不会有效果产生，具体的解释参见书92页，解决</p>
<p>&nbsp;&nbsp; 见4</p>
<p>&nbsp;</p>
<p>4 限定事件绑定函数的作用域：$()函数可以接收两个参数，第二个用于限定搜索范围的dom节点，在绑定事件中使用这一</p>
<p>&nbsp;&nbsp; 特性，就可以避免多事件绑定问题具体参见示例</p>
<p>&nbsp;</p>
<p>5 利用事件冒泡来解决3的问题：就是在他们的父标签中加入绑定事件程序，然后在限制可以使用这个事件的子元素，利用</p>
<p>&nbsp;&nbsp; 的是if($(event.target).is('h3')){} 来操作，<span style="color: #ff0000">注意$(event.target)和.is();</span></p>
<p>&nbsp;</p>
<p>6.6 安全限制：没有看</p>
<p>&nbsp;</p>
<p><strong>第七章 表格操作</strong></p>
<p>&nbsp;</p>
<p>1 tr:odd和tr:even：前者代表第偶数个tr标签，后者代表第奇数个tr标签，可以用来设置具有交替效果的实现，不一定就</p>
<p>&nbsp;&nbsp; 是tr标签，其他的任何标签都可以，这样很方面产生交替的效果</p>
<p>&nbsp;</p>
<p>2 排序一般的是使用.sort()函数，比较复杂没有做完，包括很多的效果比如分页等等</p>
<p>&nbsp;</p>
<p>3 如果tr是不规则的排列的话就要使用a:not([d])了将不规则的a元素的子元素d排除在外，a元素的其他子元素正常应用类</p>
<p>&nbsp;</p>
<p>4 三种背景色</p>
<p>1） $a.not('[b]')：a元素中除去子元素b的其他子元素</p>
<p>2） .each(function(index){})：使用each内建的索引，就是遍历所有符合条件的元素，然后给每一个元素都赋予下标索</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 引</p>
<p>3） 将三种背景色的class写成数组，然后使用index % 3 取模的方式，作为数组的下标，在交替的时候都会采用索引除以</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 基数取模的方式，来实现效果</p>
<p>&nbsp;</p>
<p>5 三行一组的交替背景色</p>
<p>1） 如果不是规则的使用索引，就要自定义一个索引控制标签，来产生效果</p>
<p>2） 同样是使用取模的方式来实现效果</p>
<p>&nbsp;</p>
<p>6 行的高亮</p>
<p>1）主要是使用的标签排除，和toggleClass,removeClass,each 有问题效果没有实现,只是第一行出现了效果</p>
<p>&nbsp;</p>
<p>7 提示信息</p>
<p>1）鼠标点击的位置成手掌状，只需在.click()之前加上$a.addClass('pointer').click()即可，充分利用.符号式</p>
<p>&nbsp;</p>
<p>2) var dd=function(event){} event代表的是事件执行的元素</p>
<p>&nbsp;</p>
<p>3）event.pageX：是元素当前x轴的位置，event.pageY是元素当前y轴的位置，xm=event.pageX-5就是代表在鼠标</p>
<p>左边5像素，ym=event.pageY+20,就是代表在鼠标下方20像素,<span style="color: #ff0000">注意在ie和firfox下的兼容问题</span> ，参见示例，另外一点也很重要，同样是参见示例。</p>
<p>&nbsp;</p>
<p>4）$("&lt;div class="tooltip"&gt;Click from d echi &lt;/div&gt;")appendTo('body'); 可以使用这个语句直接把内容添加到body的最后面</p>
<p>&nbsp;</p>
<p>5）.hover(over,our)：这个函数是鼠标的事件，前一个是鼠标悬停在对象上面执行的函数，后一个函数是鼠标移出这个对</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 象执行的函数</p>
<p>&nbsp;</p>
<p>6）.mousemove(function)：当鼠标移动时触发的事件,function代表的是触发的函数，执行的效果就是当鼠标移动的时</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 候，效果也是随之移动</p>
<p>&nbsp;</p>
<p>7）a.call('object,para')：a可以是函数对象也可以是类对象，此方法是把a赋予对象object，如果a是函数对象，那么在</p>
<p>&nbsp;&nbsp; 类object中执行函数a,如果a是类对象，那么a中所有的方法在object中都是可以调用的，就相当于object是类a的继</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 承，para是a中需要用到的参数</p>
<img src ="http://www.blogjava.net/jvict/aggbug/305984.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jvict/" target="_blank">Documents</a> 2009-12-15 09:30 <a href="http://www.blogjava.net/jvict/articles/305984.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>