读《锋利的jQuery》中first-child时的一个细节
今天在看《锋利的jQuery》这书时,看到过滤选择器那一节。有个知识点引起了我的注意。
(我不用书里一模一样的代码做例子)举个简单的例子-代码:
<ul>
<li>第一个li</li>
<li>第二个li</li>
<li>第三个li</li>
<li>第四个li</li>
</ul>
如果要第一个li的颜色为蓝色,书里给出的方法为$("ul :first-child").css("color","blue");
(ps:我用的是在线引入的jQuery:<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>)
这时我的第一反应是$("ul :first-child")这句话选择的是ul吧,不是他儿子li。我现在网上找了下例子,发现大家普遍这情况下的写法是:$("ul li:first-child").
那么书上的写法是错的么?我在编辑器上试验了一下,发现也是对的,原来关键问题出现在$("ul :first-child")的ul后面有个空格!如果空格去掉的话就真的选择了ul了!
额。。。这细节。。。。以后用ul+空格好呢,还是ul li好呢,这个看需要了哈哈。毕竟$("ul :first-child")与$("ul li:first-child")相比还多了个li!条件更加苛刻了!改下例子
<ul>
<p>lala</p>
<li>第一个li</li>
<li>第二个li</li>
<li>第三个li</li>
<li>第四个li</li>
</ul>
同样情况下,$("ul :first-child").css("color","blue")与$("ul li:first-child").css("color","blue"),前者lala变成蓝色了,后者没有效果,毕竟li不是第一个儿子(做不了太子哈哈)。
first-child和first-of-type,额,看到被人写的文章,说的蛮清楚的,附上地址:
http://www.cnblogs.com/xuan52rock/p/4416228.html
嗯,简单来说,前者说的是儿子的事,后者说的是同一元素组成一组,这组中第几个的事。加上我前面说的注意空格的情况就可以清楚了。
读《锋利的jQuery》中first-child时的一个细节的更多相关文章
- 如何在js或者jquery中操作EL表达式的一个List集合
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 先说明此篇博客看明白了可以干嘛: 就是在js或者jquery中操作一个EL表达式的一个list集合或者复杂类型 ...
- 锋利的jQuery中的事件与动画
奋夜的奋斗 ---- 事件与动画 ---- 来自地狱的战镰 小小的单词难不倒我们哦!!!!!!! bind:绑定 unbind:接触绑定 toggle:栓牢 fadeou ...
- 在jQuery中使用canvas时遇到的问题
正常的情况下一般在JavaScript中使用canvas,会用到如下代码: var canvas=document.getElementById("canvas"); var co ...
- jquery中bind事件时的命名空间用法(转)
场景:页面上的某个元素bind多个click事件处理函数,视用户的具体交互情况来决定到底使用哪个处理函数. 问题: unbind时会解绑所有的click事件,造成误伤.如果之前bind时有定义处理函数 ...
- 使用jquery中$.each()方法来循环一个数据列表
定义和用法 jQuery.each() 函数用于遍历指定的对象和数组. 语法 $.each( object, callback ) 参数 描述 object Object类型 指定需要遍历的对象或数组 ...
- web api中post参数时只能一个
在WebAPI中,请求主体(HttpContent)只能被读取一次,不被缓存,只能向前读取的流. 举例子说明: /?id=123&name=bob void Action(int id, st ...
- jQuery中animate设置属性的一个问题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- jquery中Live方法不可用,Jquery中Live方法失效
jquery中Live方法不可用,Jquery中Live方法失效 >>>>>>>>>>>>>>>>> ...
- 浅谈jquery中prop()和attr()
我们都知道,一般在jquery中设置属性时要用到attr()方法,现在我们有一个效果,点击按钮切换复选框的选中状态,下面贴出html代码: <input type="checkbox& ...
随机推荐
- string的相关问题
http://blog.csdn.net/seu_calvin/article/details/51404589 http://rednaxelafx.iteye.com/blog/774673 ht ...
- 位域(bit fields)简介
使用位域或位操作移动一个字节中的位 Java中EnumSet代替位域代码详解 关于位域的一些东西 深入理解Java枚举类型(enum) 位域是指信息在存储时,并不需要占用一个完整的字节, 而只需占几个 ...
- protobuffer php使用
protobuffer是google推出的一种数据传的方式,具体压缩,体积小的特点 protobuffer本身不支持php,若要把.proto文件转化为php支持的文件,需要使用第三方的程序 alle ...
- linux下redis安装步骤
1.官网上下载redis最新包,我下载的是redis-5.0.3.tar.gz,上传至服务器 2.解压缩:tar zxvf redis-5.0.3.tar.gz3.cd redis-5.0.3进入re ...
- Storm系列二: Storm拓扑设计
Storm系列二: Storm拓扑设计 在本篇中,我们就来根据一个案例,看看如何去设计一个拓扑, 如何分解问题以适应Storm架构,同时对Storm拓扑内部的并行机制会有一个基本的了解. 本章代码都在 ...
- 简单选择排序实现(Java)
简单选择排序实现 简单选择排序就是通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i (1 ≤ i ≤ n)个记录交换. 代码实现: public class Selec ...
- 前后端分离最佳实现,使用Nuxt.js快速搭建单页SSR应用
通常我们搭建ssr应用需要自己选择多个组件集成到一起 webpack babel loaders router server-render 各种入口配置等 如果是基于vue+vuex+vue-rout ...
- 【Ubuntu】使用记录
Vim 设置自动折行 :set wrap Maven 安装 去官网下载maven安装包 解压maven, 在主目录下的.bashrc中添加 export PATH="$PATH:{your_ ...
- nginx+jwplayer配置flv/MP4点播系统, 视频拖动支持
一 配置nginx 1. 下载 nginx 最新版 http://nginx.org/ 2. 安装依赖库, 以ubuntu为例 apt-get install libpcre3 libpcre3-de ...
- 3DES在Android、Ios 和Java 平台的加密解密
DES简介: DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法, 算法的入口参数有三个:Key.Data.Mode. K ...