简介:探索一些CSS和XPath选择符,以及JQuery独有的自定义选择符。介绍JQuery的DOM便历方法

1。DOM

jQuery 最强大的方面之一就是它能够简化DOM遍历任务。

2。工厂函数$()

放到圆括号中的任何元素都将自动执行循环遍历,并且会被保存到一个JQuery对象中。

标签名:$(‘p’)会取得文档中所有在段落

ID:$(‘#some-id’)会取得文档中具有对应的some-id ID的一个元素。

类:$(‘.some-class’)会取得文档中带亦some-class 的所有元素。

提示:美元符号$只不过是对标识符jQuery的一种简写方式。如果冲突可将$替换JQuery

3。当在JQuery代码中使用$(document).ready()结构时,位于其中的所有代码都会在DOM加载后立即执行。

例1:$(document).ready(function(){

$(‘#selectedplays>li’).addClass(’horizontal’);  /*查找ID为 selected-plays 的元素(#selected-plays)的

子元素(>)中所有的列表项(li)*/

});

>:将horizontal类只添加到位于顶级的项中。

例2:$(document).ready(function(){

$('#selectedplays>li').addClass('horizontal');

$('#selectedplaysli:not(.horizontal)').addClass('sublevel');  /*没有horizontal类(not(.horizontal))*/

})

4。在涉及属性选择符(attribute selector)时,jQuery使用了XPath中的惯例来标识属性,即将属性前置一个@符号并放在一对方括号中。

例如,要选择所有带title属性的链接,可以使用下面的代码:

$('a[@title]')

此外,方括号在XPath语法中还有另外一种用途,即在不带前置@符号的情况下,可以用来指定包含在另一个元素的元素。

例如,取得包含一个ol元素的所有div元素:$('div[ol]')

5。属性选择符允许以类似正则表达式的语法来标识字符串的开始(^)和结尾($)。而且,也可以使用星号(*)表示字符串的任意位置。

例如:以不同的文本颜色来显示不同类型的链接。

(1)首先要在样式表中定义如下样式:

a.mailto{

color:#f00;

}

a.pdflink{

color:#090;

}

a.mysite{

textdecoration:none;

borderbottom:1px dotted  #00f;

}

(2)然后,可以使用jQuery 为符合条件的链接添加3个类:mailto、pdflink、mysite。

要取得所有电子邮件链接,需要构造一个选择符,用来寻找所有带href属性([@href])且以mailto开头(^="mailto:")的锚元素(a)。结果如下所示:

$(document).ready(function(){

$('a[@href^="mailto:"]').addClass('mailto');

});

要取得所有指向PDF文件的链接,需要使用美元符号($)而不是脱字符号(^),来取得所有带href属性并以.pdf结尾的链接,相应的代码如下所示:

$(document).ready(function(){

$('a[@href^="mailto:"]').addClass('mailto');

$('a[@href$=".pdf"]').addClass('pdflink');

})

(3)最后,要 取得所有内部链接,即到mysite.com中其他页面的链接,则需要使用星号:

$(document).ready(function(){

$('a[@href^="mailto:"]').addClass('mailto');

$('a[@href$=".pdf"]').addClass('pdflink');

$('a[@href*="mysite.com"]').addClass('mysite');

});

6。自定义选择符,选择符以一个冒号(:)开头。

例如:我们想要从匹配的带有horizontal类的div集合中,选择第2个项,那么应该使用下面的代码:

$('div.horizontal:eq(1)')

注意:因为JavaScript数组采用从0开始的编号方式,所以eq(1)取得的是集合中的第2个元素。

而CSS则是从1开始的,因此CSS选择符$('div:nth-child(1)')取得的是作为其父元素第1个子元素的所有div.

自定义选择符 :odd和:even。

例如:通过这两个选择符为表格添加基本的条纹样式。

<table>

<tr>

<td>As You Like It </td>

<td>Comedy</td>

</tr>

<tr>

<td>All's Well that Ends Well </td>

<td>Comedy</td>

</tr>

<tr>

<td>Hamlet</td>

<td>Tragedy</td>

</tr>

<td>Macheth</td>

<td>Tragedy</td>

<tr>

<td>Romeo and Juliet</td>

<td>Tragedy</td>

</tr>

<tr>

<td>Henry IV,Part I</td>

<td>History</td>

</tr>

<tr>

<td>Henry V</td>

<td>History</td>

</tr>

</table>

我们可以向样式表中添加两个类,一个用于为奇数行添加样式,另一个用于为偶数行添加样式:

odd{

backgroundcolor:#ffc;

}

.even{

backgroundcolor:#cef;

}

最后,编写jQuery代码,将这两个类添加到表格行(<tr>标签)中:

$(document).ready(function(){
 $("tr:odd").addClass("odd"); 
 $("tr:even").addClass("even");
});突出显示可用 :contains()选择符,如:.hightlight{font-weight:bold;color:#f00;}

<script>
 $(document).ready(function(){
 $("tr:odd").addClass("odd"); 
 $("tr:even").addClass("even");
 $('td:contains("Henry")').addClass("hightlight");
});
</script>

7。.get()方法

例如:如果想知道带有id="my-element"属性的元素的标签名,应该使用如下代码:

var myTag=$('#myelement').get(0).tagName; 或者简写为$('#my-element')[0],也就是说,可以在选择符后面直接使用方括号。

转载于:https://www.cnblogs.com/jw123/archive/2011/01/17/1937607.html

jQuery 第二章相关推荐

  1. Jquery第二章常用方法,一二级菜单淡入淡出,event事件,复选框的全选反选第一节

    hide() show() 通过滑动效果 slideToggle() 淡入淡出 fadeIn() fadeout() 向上 向下拉动 slideup() slidedown() 源码: <!DO ...

  2. Jquery第二章appendTo方法到方法的使用练习第二节

    效果图 源码: <!DOCTYPE html> <html lang="en"> <head><meta charset="UT ...

  3. jQuery第二章选择器

    标题 1:基础选择器 id # class . 标签 div * 通配符 群组 #box,p css() 一个值的时候是找这个元素的值,两个值的时候是设置样式举例 找元素的值:alert($('p') ...

  4. 北大青鸟 JQuery制作特效 第二章 (上机练习

    北大青鸟 JQuery制作特效 第二章 (上机练习 练习一丶制作简易的当当购物车页面 <!DOCTYPE html> <html> <head lang="en ...

  5. python数据结构题目_《数据结构与算法Python语言描述》习题第二章第三题(python版)...

    ADT Rational: #定义有理数的抽象数据类型 Rational(self, int num, int den) #构造有理数num/den +(self, Rational r2) #求出本 ...

  6. 第二章 指南(4.3)添加 View

    原文:Adding a view 作者:Rick Anderson 翻译:魏美娟(初见) 校对:赵亮(悲梦).高嵩(Jack).娄宇(Lyrics).许登洋(Seay).姚阿勇(Dr.Yao) 本节将 ...

  7. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

    MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...

  8. 跟我一起学jQuery——第二集(未完待续..)

    <锋利的JQuery>第二版阅读笔记-第二章 跟我一起学jQuery--第二集 代码风格 jQuery选择器 接下来,就要开始正式学习jQuery的各种使用了.但是没有规矩不成方圆,所以我 ...

  9. 《风尚坐火箭学习vue》-- 第二章:页面中输出hello Vue

    前言:前端框架千千万,独有vue占一半 我是风尚,让我们一起坐火箭去学习Vue 图片来自vue官网 第二章:hello Vue 上章回顾:风尚内心答应了跟白发老头学习vue 风尚内心答应了跟白发老头学 ...

最新文章

  1. Angular1.x入门级自定义组件(导航条)
  2. 自建MySQL和阿里云RDS的区别 有必要使用云数据库吗?...
  3. UART串口通信浅谈之(一)--基础概述
  4. matlab删失数据威布尔,基于混合I型删失数据威布尔模型的可接受抽样计划
  5. 设置vmware vsphere web client_Arduino+前端高级应用-通过WEB网页控制Arduino开发板上的LED灯...
  6. apache camel_Apache Camel –从头开始开发应用程序(第1部分/第2部分)
  7. LeetCode 468. 验证IP地址
  8. mysql迁移至postgresql_PostgreSQL来自欧罗巴Patroni系列技术主题一
  9. div背景透明内容不透明与0.5PX边框兼容设置
  10. python-索引1909
  11. 测试是为了对软件质量进行度量和评估,软件测试复习题
  12. ios 添加条纹背景
  13. R语言数据挖掘实战系列(4)
  14. 机器视觉硬件之工业相机(一)
  15. 【最短路】【spfa】CDOJ1633 去年春恨却来时,落花人独立,微雨燕双飞
  16. 考研笔记-chyer
  17. 万达电商为何刻意回避阿里与马云
  18. 京东商城网页数据爬取
  19. 史上最全的数据库面试题,面试前刷一刷
  20. PHPUnit袖珍指南 第六章 装置器

热门文章

  1. 华为USG Firewall Ipsec L2L
  2. 23 Merge k Sorted Lists
  3. 访华为5G首席科学家童文:针尖战略引领5G突破
  4. apc220使用心得
  5. POJ 3748:位操作
  6. python 安装easy_install和pip
  7. 备份集中的数据库备份与现有的 '***' 数据库不同 RESTORE DATABASEnbs
  8. js中document.getElementById(ID)与document.getElementsByName(Name)的区别
  9. AJAX Control Toolkit - DropDown
  10. Open×××的新钩子设计