jQuery学习之探究nth-child(N)选择符

2016-02-19 16:17 5 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享jQuery学习之探究nth-child(N)选择符教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

  说说nth-child(an+b)。

   nth-child()这个东西,是CSS3中的一个伪类选择符,jQuery也拿来用了。

   国内翻译教材《jQuery基础教程》中有一句这样的翻译“......因此CSS选择符$('div:nth-child(1)')取得的是作为其父元素第1个子元素的所有div。”初读此句,总觉得不易理解,于是便有了google的冲动(在这里要强烈BS一下教育网,网速慢的比蜗牛还慢,打开google都要等半天,下载基本围绕在1Byte/5s左右,jQuery中文社区也访问不了。)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

   经过一整晚的搜索之后,中文版的解释大概如下:

   匹配其父元素下的第N个子元素,当然an+b也可以换为odd或even,这时候的意思就是匹配其父元素下的奇(偶)元素。其与eq(index)的区别是:eq(index)只匹配一个元素。而nth-child()将为每一个父元素匹配子元素。:nth-child从1开始的,而:eq()是从0算起的!

   在CSS的教程里有人这样说:nth-child()的参数是an+b,如果按照w3.org上的描述,写成中文,很可能会让人头晕,再加上笔者的文笔水平有限,所以我决定避开an+b的说法,把它拆分成5种写法共5部分来说明。读完整篇文章之后,对其理解还是晕乎乎的,而且其后给出的示例直接与我做的实验矛盾(后来分析是他的实验没有element的嵌套所致)。

   于是只好找出英文原版:

   The :nth-child(an+b) pseudo-class notation represents an element that has an+b-1 siblings before it in the document tree, for a given positive integer or zero value of n.

   注意这么一句“in the document tree”。我不知道为什么那么多的中文翻译里把这个词语去掉了,但它确实对理解这

  个选择符很关键。

   现在,让我们重新来理解这个选择符。参数an+b所代表的意思再不去深究,以$('div:nth-child(2)')举例:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

   在我们的div树中(in the document tree),选取所有具有1(an+b-1)个兄长(siblings before it)的div

  (element)。这时候,选取的结果那应该是element集合了。

   其实,结合“树”这个概念,对nth-child()这个选择符还是很好理解的。如下图:

图1 div:nth-child(1)和div:nth-child(2)选取的元素图例

   用我们家族关系来形象地说,nth-child(N)选取的是在我们的家族中所有的老N的集合。

在这里,还有一个问题:
$('div:nth-child(odd)').css("color","red");
$('div:nth-child(even)').css("color","blue");

  用了上面两句,所有div的字体颜色会以红蓝间隔的出现吗?答案当然是:不会。

来源:http://www.tulaoshi.com/n/20160219/1611537.html

延伸阅读
标签: Web开发
代码如下: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=utf-8" / script src="js/jquery-1.3.2.js"/script script type="text/javascript...
标签: Web开发
代码如下: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=utf-8" / title无标题文档/title script src="js/jquery-1.3.2.js"/script scrip...
标签: Web开发
伪类可以看做是一种特殊的类选择符,是能被支持CSS的浏览器自动所识别的特殊选择符。它的最大的用处就是可以对链接在不同状态下定义不同的样式效果。 1. 语法 伪类的语法是在原有的语法里加上一个伪类(pseudo-class): selector:pseudo-class {property: value} (选择符:伪类 {属性: 值}) 伪类和类不同,是CSS已经定义好的,不能象类...
标签: Web开发
英文原文: http://www.456bereastreet.com/archive/200601/css_3_selectors_explained/ 中文翻译: http://www.dudo.org/article.asp?id=197 注: 本文写于2006年1月,当时IE7、IE8和Firefox3还未发行,文中所有说的浏览器支持均未包括这三个版本的浏览器。在IE8和Firefox3中,文中的大部分选择符已经被支持[dudo注] 在2005年的9月和1...
E:hover伪类选择符,是我们最熟悉不过的一个伪类了,而且运用也是非常的广泛,可以说在互联网中每个网站上面都会出现它的影子。我们不可否认已经对这个伪类选择符已经是相当的熟悉,但你是否真正的将它的功能发挥到淋漓尽致呢?嘿嘿只要善于发现,我们就可以创造出非常有意思的东西来,大家是否还记得之前的分享给大家的一篇文章《创意CSS技巧...

经验教程

72

收藏

72
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部