jQuery选择器容易忽视的小知识大问题

 

1

关于检查某个元素在网页上的存在

很多人会惯性的写成 1 if($("#tt")){ 2 //do something 3 } 

其实应该根据获取到元素的长度来判断

if($("#tt").length>0){
//do something博客园如何修改我的标签
}

当然啦还可以转化成DOM对象来判断

if($("tt")[0]){
//do somethign
}

2

关于子元素过滤选择器:nth-child(index/even/odd/equation)和:eq(index)在使用时需注意前者的值从1开始算,后者从0开始

前者选取每个父元素下的第index个子元素或者奇偶元素(odd/even)而:eq(index)却只能匹配一个元素。

eg: :nth-child(3n+1`)能选取每个父元素下的索引值是(3n+1)的元素(切记n是从1开始的哦~)

3

在使用:input选择器时一定要注意的是:input是个低调的大神,他不仅会选取<input>,而且也会偷使神功选取<textarea><select><button>

4

计数表单内元素的个数时我们常使用的$("#form :input").length;

很easy的感脚有木有,但很多人会下意识的写成$("#form1 input").length~

写到这里就实在忍不住说一下后代选择器跟过滤选择器也是双胞姐妹很容易弄错的哦

var $hd=$('.text :hidde');//注意.text后有空格哦,而且人家选取的是class为“text”的元素里面隐藏的元素   过滤选择器(总得有个空格才能过滤开吧~)
var $gl=$('.text:hidden')//好吧,,,这个是选取隐藏的class为“text”的元素,正宗的后代选择器

5

最后写一下自己的发现吧~那就是和if  else相比,或许我们可以用toggle()方法来交替一组动作

eg:

toggleBtn.click(function(){
    if($category.is(":visible")){
    //隐藏某些元素
    }
    else{
    //显示某些元素
    }
})
$toggleBtn.toggle(function(){
    //亮个相吧}
        
    funcrtion(){
    //还是犹抱琵琶半遮面的好呢
 })//两个function就OK

 

posted @ 2015-03-11 20:29  如梦令szy  阅读(234)  评论(0编辑  收藏  举报