jQuery 绝对入门第1/2页
2009-04-15 00:00
260 查看
1.jQuery GO
jQuery 提供了功能强大的读取和处理文档DOM的方式,为动态操作文档DOM提供了方便。
单击文档中任一个连接都会触发alert() 事件
$号是 jQuery类的一个别称,因此$()构造了一个新的jQuery 对象。函数 click() 是这个jQuery对象的一个方法,它绑定了一个单击事件到所有选中的标签(这里是所有的a标签),并在事件触发时执行了它所提供的alert方法. 这样的使用编码更有结构与行为分开的感觉。
2.选择器和事件
jQuery提供两种方式来选择html的elements,第一种是用CSS和Xpath选择器联合起来形成一个字符串来传送到jQuery的构造器(如:$("div > ul a"));第二种是用jQuery对象的几个methods(方法)。这两种方式还可以联合起来混合使用
使用jQuery 查找文档中的ul如下:取代js document.getElementById(‘orderlist');
$(“#..”)的方式可以找到指定ID的元素。
为其子节点添加样式,如下:
在鼠标移到或移开<li>项时样式切换,如下:
$(#orderedlist li) 与 $(“#orderedlist > li”) 的区别,前者是父元素下所有匹配的子元素,后都仅是其子元素中匹配的元素。
find() 让你在已经选择的element中作条件查找,因此 $("#orderedlist).find("li") 就像 $("#orderedlist li")一样。each()方法迭代了所有的li,并可以在此基础上作更多的处理。 大部分的方法,如addClass(), 都可以用它们自己的 each() 。在这个例子中, html()用来获取每个li的html文本, 追加一些文字,并将之设置为li的html文本
一个ajax 方式提交后的重置表单的操作,如下:
当然可以重置个表单
过滤选择器
还有一个你可能要面对的问题是不希望某些特定的元素被选择。jQuery 提供了filter() 和not() 方法来解决这个问题。 filter()以过滤表达式来减少不符合的被选择项, not()则用来取消所有符合过滤表达式的被选择项. 考虑一个无序的list,你想要选择所有的没有ul子元素的li元素。
上面代码中的[expression] 语法是从XPath而来,可以在子元素和属性(elements and attributes)上用作过滤器,比如你可能想选择所有的带有name属性的链接:
更常见的情况是以name来选择链接,你可能需要选择一个有特点href属性的链接,这在不同的浏览器下对href的理解可能会不一致,所以我们的部分匹配("*=")[包含]的方式来代替完全匹配("="):
到现在为止,选择器都用来选择子元素或者是过滤元素。另外还有一种情况是选择上一个或者下一个元素,比如一个FAQ的页面,答案首先会隐藏,当问题点击时,答案显示出来,jQuery代码如下:
这里我们用了一些链式表达法来减少代码量,而且看上去更直观更容易理解。像'#faq' 只选择了一次,利用end()方法,第一次find()方法会结束(undone),所以我们可以接着在后面继续find('dt'),而不需要再写$('#faq').find('dt')。
jQuery 提供了功能强大的读取和处理文档DOM的方式,为动态操作文档DOM提供了方便。
$(document).ready(function() { $("a").click(function() { alert("Hello world!"); }); });
单击文档中任一个连接都会触发alert() 事件
$号是 jQuery类的一个别称,因此$()构造了一个新的jQuery 对象。函数 click() 是这个jQuery对象的一个方法,它绑定了一个单击事件到所有选中的标签(这里是所有的a标签),并在事件触发时执行了它所提供的alert方法. 这样的使用编码更有结构与行为分开的感觉。
2.选择器和事件
jQuery提供两种方式来选择html的elements,第一种是用CSS和Xpath选择器联合起来形成一个字符串来传送到jQuery的构造器(如:$("div > ul a"));第二种是用jQuery对象的几个methods(方法)。这两种方式还可以联合起来混合使用
<ul id=”orderedlist”> <li>食品</li> <li>服装</li> <li>电子</li> </ul>
使用jQuery 查找文档中的ul如下:取代js document.getElementById(‘orderlist');
$(document).ready(function() { $("#orderedlist").addClass("red"); });
$(“#..”)的方式可以找到指定ID的元素。
为其子节点添加样式,如下:
$(document).ready(function() { $("#orderedlist > li").addClass("blue"); });
在鼠标移到或移开<li>项时样式切换,如下:
$(document).ready(function() { $("#orderedlist li:last").hover(function() { $(this).addClass("green"); }, function() { $(this).removeClass("green"); }); });
$(#orderedlist li) 与 $(“#orderedlist > li”) 的区别,前者是父元素下所有匹配的子元素,后都仅是其子元素中匹配的元素。
$(document).ready(function() { $("#orderedlist").find("li").each(function(i) { $(this).html( $(this).html() + " BAM! " + i ); }); });
find() 让你在已经选择的element中作条件查找,因此 $("#orderedlist).find("li") 就像 $("#orderedlist li")一样。each()方法迭代了所有的li,并可以在此基础上作更多的处理。 大部分的方法,如addClass(), 都可以用它们自己的 each() 。在这个例子中, html()用来获取每个li的html文本, 追加一些文字,并将之设置为li的html文本
一个ajax 方式提交后的重置表单的操作,如下:
$(document).ready(function() { // use this to reset a single form $("#reset").click(function() { $("#form")[0].reset(); }); });
当然可以重置个表单
$(document).ready(function() { // use this to reset several forms at once $("#reset").click(function() { $("form").each(function() { this.reset(); }); }); });
过滤选择器
还有一个你可能要面对的问题是不希望某些特定的元素被选择。jQuery 提供了filter() 和not() 方法来解决这个问题。 filter()以过滤表达式来减少不符合的被选择项, not()则用来取消所有符合过滤表达式的被选择项. 考虑一个无序的list,你想要选择所有的没有ul子元素的li元素。
$(document).ready(function() { $("li").not("[ul]").css("border", "1px solid black"); });
上面代码中的[expression] 语法是从XPath而来,可以在子元素和属性(elements and attributes)上用作过滤器,比如你可能想选择所有的带有name属性的链接:
$(document).ready(function() { $("a[name]").background("#eee"); //原文为“$("a[@name]").background("#eee");”在jQuery1.2及以上版本中,@符号应该去除 });
更常见的情况是以name来选择链接,你可能需要选择一个有特点href属性的链接,这在不同的浏览器下对href的理解可能会不一致,所以我们的部分匹配("*=")[包含]的方式来代替完全匹配("="):
$(document).ready(function() { $("a[href*=/content/gallery]").click(function() { // do something with all links that point somewhere to /content/gallery }); });
到现在为止,选择器都用来选择子元素或者是过滤元素。另外还有一种情况是选择上一个或者下一个元素,比如一个FAQ的页面,答案首先会隐藏,当问题点击时,答案显示出来,jQuery代码如下:
$(document).ready(function() { $('#faq').find('dd').hide().end().find('dt').click(function() { var answer = $(this).next(); if (answer.is(':visible')) { answer.slideUp(); } else { answer.slideDown(); } }); });
这里我们用了一些链式表达法来减少代码量,而且看上去更直观更容易理解。像'#faq' 只选择了一次,利用end()方法,第一次find()方法会结束(undone),所以我们可以接着在后面继续find('dt'),而不需要再写$('#faq').find('dt')。
相关文章推荐
- Javascript入门学习第七篇 js dom实例操作第1/2页
- Javascript入门学习第二篇 js类型第1/2页
- jQuery基础教程笔记适合js新手第1/2页
- 推荐学习php sesson的朋友必看PHP会话(Session)使用入门第1/2页
- JavaScript 面向对象入门精简篇第1/2页
- asp经典入门教程 在ASP中使用SQL 语句第1/2页
- JS+Ajax+Jquery实现页面无刷新分页以及分组 超强的实现第1/2页
- Javascript入门学习第三篇 js运算第1/2页
- jQuery弹出层插件简化版代码第1/2页
- jQuery实用技巧第1/2页
- Javascript入门学习第五篇 js函数第1/2页
- Javascript入门学习第四篇 js对象和数组第1/2页
- asp经典入门教程 在ASP中使用SQL 语句第1/2页
- PHP/Javascript/CSS/jQuery常用知识大全详细整理第1/2页
- Javascript入门学习第四篇 js对象和数组第1/2页
- Javascript入门学习第五篇 js函数第1/2页
- PHP类(Class)入门教程第1/2页