$("form:nth-child(3)").attr('value',function(i, val){
return '通过function设置' + val
})
为什么用 nth-child 无效果呢?
简单点说你这个$("form:nth-child(3)")表示的是第三个form元素,如果你需要用nth-child就应该为$("input:nth-child(3)")
input:nth-child(3)是第一步,找到所有的input元素,得到一个所有input元素组成的集合,第二步,在集合中找出在家是他爹的第3个孩子的那些input元素
input:nth-eq(3)是第一步,找到所有的input元素,得到一个所有input元素组成的集合(看成数组),第二步,在集合中找出下标是[3]的input元素.
而form:nth-child(3)是第一步只找到一个form元素,第二步,找到在家是他爹的第3个孩子的form,哪有这么个元素啊
课程上的话挺烧脑的,用白话给楼主解释下吧
1, 筛选选择器用来筛选其前面已匹配的元素集合.根据之前匹配的元素在进一步筛选
2, 冒号前的选择器得到的结果是一个合集.也就是
匹配的元素集合:nth-child(n) 排行老几筛选器 //在匹配的集合中选择是家中排行第n的那些
w3c的定义ele:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型。
注意这里的父元素,是从ele这个元素开始往上寻找
应该换成input ,往上寻找form是父元素 ,所以你用form的话就作用不了