zoukankan      html  css  js  c++  java
  • jQuery教程基础篇之强大的选择器(层次选择器)

    无论何时,我们都要记住的一点就是通过jQuery选择器获取的jQuery对象任何时候都是一组元素。
    而JQuery选择器又具有这样的特点:
    隐式迭代
    $(“选择器”).css(“background-color”,”red”)则是为这组元素中每个元素的样式都加上红色背景。jQuery会自动迭代每个元素,这就免去了我们编写代码遍历每个元素对象的操作。

    无需判断对象是否存在
    如果页面上不存在id为test的DOM 元素,$(“#test”).css(“background-color”,”red”)不会产生任何异常,而 document.getElementById(“test”).style.backgroundColor=’red’就会产生未找到对象的异常。
    虽然jQuery这样操作不会产生异常,但是我们在开发jQuery插件的时候,是有必要判断jQuery选择器有没有获取到元素的,这样可以在插件未正常获取到元素的时候,可以立即停止插件的运行,可以提高性能而且减少意外情况的发生。如何获取呢?可以这样

    if ($("选择器").length() > 0){
    //说明获取到元素了
    }else{
    //未获取到元素
    }

    上面一段文字貌似和今天要说的jQuery层次选择器好像没多大关系呢,呵呵~~的确,上面的东西是我临时想起来的,感觉比较实用,所以就在这里和大家说一下,也好让对此没有多少了解的人解决一下疑惑。
    那接下来我们来说一下这个jQuery层次选择器的用法,其实jQuery层次选择器只有两种用法:

    1. $(“ancestor descendant”):选取parent元素后所有的child元素
      ancestor的中文意思是“祖先”,descendant的中文意思是“后代”
      $(“body div”) 选取body元素下所有的div元素。
      $(“ul li”) 选取ul元素下所有的li元素。
      $(“#test div”) 选取id为“test”的元素所包含的所有的div子元素
      $(“div#test div”) 选取id为“test”的div所包含的所有的div子元素
      $(“.test div”) 选取class为“test”的元素所包含的所有的div子元素
      $(“span.test div”) 选取class为“test”的span所包含的所有的div子元素
      $(“span.test .demo”) 选取class为“test”的span所包含的所有的class为demo的元素
      $(“.test .demo”) 选取class为“test”的元素所包含的所有的class为demo的元素
    2. $(“parent > child”):选取parent元素后所有的直属child元素,何谓“直属”,也就是第一级的意思了
      $(“body > div”) 选取body元素下所有的第一级div元素。
      $(“ul > li”) 选取ul元素下所有的第一级li元素。
      $(“#test > div”) 选取id为“test”的元素所包含的所有的第一级div子元素
      $(“div#test > div”) 选取id为“test”的div所包含的所有的第一级div子元素
      $(“.test > div”) 选取class为“test”的元素所包含的所有的第一级div子元素
      $(“span.test > div”) 选取class为“test”的span所包含的所有的第一级div子元素
      $(“span.test > .demo”) 选取class为“test”的span所包含的所有的第一级class为demo的元素
      $(“.test > .demo”) 选取class为“test”的元素所包含的所有的第一级class为demo的元素
    3. $(“prev + next”):prev和next是两个同级别的元素. 选中在prev元素后面的next元素.
      $(“#demo+img”)选在id为demo元素后面的img对象.如果id为demo元素后面没有同级的img对象,那么这个$(“#demo+img”).length()=0
    4. $(“prev ~ siblings”):选择prev后面的根据siblings过滤的元素。注:siblings是过滤器
      $(“#demo~[title]“)选择id为demo的元素后面所有带有title属性的元素,同样如果id为demo的元素后面没有一个带有title属性的元素,那么$(“#demo~[title]“).length() = 0
  • 相关阅读:
    Storm的并行度、Grouping策略以及消息可靠处理机制简介
    storm入门原理介绍
    Kafka学习笔记-Java简单操作
    批量复制word文档,并生成以日期为后缀名的批量文档攻略,批量生成word文档
    数组
    分支结构,循环结构学习整理
    java中的运算符
    Java中的变量和基本数据类型知识
    Java开发环境描述
    使用Map,统计字符串中每个字符出现的次数
  • 原文地址:https://www.cnblogs.com/mikechang/p/1967471.html
Copyright © 2011-2022 走看看