Jquery之所以强大,和其在获取对象时使用与css选择器兼容的语法有很大关系。而且它还兼容了CSS3的选择器,而且多出了不少。

所以jQuery的选择器也就变得很多很强大。就最基本的有以下四个:

$('*')  匹配页面所有元素

$('#id') id选择器

$('.class') 类选择器

$('element') 标签选择器

$('E[attr]') 含有属性attr的元素E

$('E[attr=value]') 属性attr=value的元素E

JQuery中查找父元素

.closest()

closest会首先检查当前元素是否匹配,如果匹配则直接返回元素本身。如果不匹配则向上查找父元素,一层一层往上,直到找到匹配选择器的元素。如果一直没有找到匹配元素,则返回一个空的jQuery对象

  1. <ul class="ulCss">
  2. <li class="itemA">A</li>
  3. <li class="itemB">B</li>
  4. </ul>
  5.  
  6. <script>
  7. $('li.itemA').closest('ul').css('background-color','red');
  8. </script>

在这里,$('li.itemA').closest('ul') 获取的就是 <ul class="ulCss"> 这个元素

.parent()

parent() 向上只查找一层,即返回唯一的父元素。 如果选择器选择了多个对象(比如 $("div").parent(), 这里选择器$("div")会返回页面上所有的div,如果页面上有多个div,则就是说,这个选择器$('div')就是选择了多个对象),则返回父元素数组.

比如: $("div").parent() 返回页面上所有div元素的父元素,结果是一个数组。如果需要在这个数组里面继续选择,可以使用$("div").parent("#id"), $("div").parent(".className")

.parents()

parents()方法就不是往上只查找一层,而是会一层一层的往上查找,直到返回所有匹配上的元素.  也就是说,它会查找jQuery对象符合选择器的所有祖先元素,但不包括元素本身.

$("p.selected").parents("div").css("border","2px red solid")  会查找css class为selected的p元素 的 所有祖宗div元素,然后给这些div元素添加border属性"2px red solid"

所以 parents()和closest()的区别

1. parents()从父级开始匹配元素,而closest()从自身开始

2. parents()向上查找所有的父级元素,直到根元素。然后把这些所有的查找结果放到一个临时的集合中,再通过额定的条件来进行筛选.

closest()从自身元素开始向上查找,直到找到有效的匹配元素就停止.

3. parents()返回的元素值可以有0个,1个,或者多个. 而closest()结果返回值就只有0个或者1个

JQuery中查找子元素

.children()

.children()方法和.parent()方法 (注意 不是parents()) 相对应

children在英文中是孩子的意思,所以它只向下追索一层.

children()方法返回被选元素的所有直接子元素,该方法只会向下一级对DOM树进行遍历.

比如 $("div").children() 会返回页面上每个div的所有直接子元素.

.find()

find()方法用来查找指定元素的后代元素,一路向下直到最后一个后代  注意: find()用来查找当前元素的所有后代元素

$('ul').find('li').css('background-color','red') 首先找到页面上所有的ul元素,然后找到ul元素下面的所有后代li元素,给他们加上背景颜色-红色

又比如 $("#table1").find("td") 和 $("#table1 td")效果是一样的。

$("div").find("*") 返回<div>的所有后代元素.

JQuery中的基本方法

.ready(handler) 

文档加载完成后执行的方法,区别于window.onload

  1. $(document).ready(function(){
  2.  
  3. });

.each(function(index,element))

其中, function(index,element) 为必须项, 为每个匹配元素规定运行的函数.

index -- 选择器的index位置

element - 当前的元素 (也可使用 "this" 选择器)

each()方法是jQuery中的一个非常强大的方法(该方法在javascript中也存在). each()方法能够使得DOM循环结构简洁,不容易出错. 它封装了强大的遍历功能,可以用来遍历一维数组,多维数组,DOM和JSON等等.

each处理一维数组例子:

  1. var arrTest = ["a","b","c"];
  2.  
  3. $.each(arrTest,function(i,val){
  4.  
  5. alert(i);
  6. alert(val);
  7.  
  8. });
  9.  
  10. alret(i)将输出 0, 1, 2
  11. alret(val)将输出 a,b,c

each处理二维数组例子:

  1. var arrTest = [['a','aa','aaa'],['b','bb','bbb'],['c','cc','ccc']]
  2.  
  3. $.each(arrTest, function(i,item){
  4.  
  5. alert(i);
  6. alert(item);
  7.  
  8. });
  9.  
  10. 在这里, arrTest是一个二维数组,而item相当于获取这个二维数组中的每一个数组
  11. alert(i) 将输出0,1,2 因为这个二维数组含有3个数组元素
  12. alert(item) 将输出['a','aa','aaa'],['b','bb','bbb'],['c','cc','ccc']
  13. item[0] 则相当于取其中每个一维数组里面的第一个值
  14.  
  15. 所以,如果我们需要获取里面的每个一维数组中的每个元素,需要使用两个each循环
  16.  
  17. $.each(arrTest,function(i,item){
  18.  
  19. $.each(item,function(j,val){
  20.  
  21. alert(j);
  22. alert(val);
  23.  
  24. });
  25.  
  26. });
  27.  
  28. 在这里, alert(j)将输出0,1,2,0,1,2,0,1,2
  29. alert(val)将输出a,aa,aaa,b,bb,bbb,c,cc,ccc

each处理json数据的例子

  1. var obj = {one:1, two:2, three:3}
  2. $.each(obj,function(key,val){
  3.  
  4. alert(key);
  5. alert(val);
  6. });
  7.  
  8. 采用RunJs (http://runjs.cn/code)进行测试这个代码,发现
  9. alert(key)将输出one, two,three
  10. alert(val)将输出1,2,3

JQuery中查找父元素,子元素,追加元素,插入元素和删除元素 及其他常用方法的更多相关文章

  1. jquery中的append功能相当于剪切的作用 将原来的元素剪切走

    jquery中的append功能相当于剪切的作用 将原来的元素剪切走

  2. jquery中的this与$(this)的区别总结(this:html元素)($(this):JQuery对象)

    jquery中的this与$(this)的区别总结(this:html元素)($(this):JQuery对象) 一.总结 1.this所指的是html 元素,有html的属性,可用 this.属性  ...

  3. CSS中的父相子绝布局

    主要应用场景,就是我想要块的布局根据父级来定位,而不是根据页面. 例如,下面的例子中,我用两个半圆拼成一个正圆,思路是用一个父级标签把两个子标签包起来,父标签是一个正圆,然后子标签各占一半,先化成两个 ...

  4. Java中数组的几个常用算法:插入算法,删除算法,冒泡排序算法

    前言: 在Java中我们常常会用数组,提到数组就不得不介绍数组中常用到的几个算法. 有插入算法,删除算法,冒泡排序算法等. 在学习这几个数组的算法前,我们先来了解一下关于数组一些基本知识. 数组的基本 ...

  5. jQuery中获取特定顺序子元素(子元素种类不定)的方法

    提出问题:只已知父元素和父元素中子元素的次序,怎么通过jQuery方法获得该元素? <p>第一部分:</p> <ul> <li>1</li> ...

  6. jquery中对父节点和子节点的利用

    <tr id='new_tr'> <td id="td_1">td1</td> <td id="td_2">td ...

  7. sql server中的大数据的批量操作(批量插入,批量删除)

    首先我们建立一个测试用员工表 ---创建一个测试的员工表--- create table Employee( EmployeeNo int primary key, --员工编号 EmployeeNa ...

  8. jquery查找父元素、子元素(个人经验总结)

    使用js或者jquery查找父元素.子元素经常遇到.可是用起来总容易混淆,这里统一总结了一下,以后用起来相信会方便好多 这里jquery向上查找父元素 用到的方法:closest() parents( ...

  9. JQuery操作iframe父页面与子页面的元素与方法

    JQuery操作iframe父页面与子页面的元素与方法 JQUERY IFRAME 下面简单使用Jquery来操作iframe的一些记录,这个使用纯JS也可以实现. 第一.在iframe中查找父页面元 ...

随机推荐

  1. 九度OJ 1005:Graduate Admission (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5646 解决:1632 题目描述: It is said that in 2011, there are about 100 graduat ...

  2. Swift 学习笔记 (解决Swift闭包中循环引用的三种方法)

    话不多说 直接上代码 class SmartAirConditioner { var temperature:Int = //类引用了函数 var temperatureChange:((Int)-& ...

  3. AsyncTask==Handler+Thread对比使用说明

    AsyncTask能够合理且轻松使用UI线程,该类允许执行后台操作和发送结果到UI线程而不需要操作threads或handlers. AsyncTask是针对Thread和Handler代替而封装好的 ...

  4. reduce python 的用法

    1.查看reduce 的用法 在python 命令查看 import functools help(functools) help(functools.reduce) 或者 from functool ...

  5. global 全局变量的用法

    说明:i 和foo()都为全局变量,i 是在模块文件顶层注册的,所以为全局变量,他能够在函数内部进行引用而不需要再特意声明是全局变量,且foo()函数也是全局变量 1.当没有局部变量时,print(i ...

  6. 【LeetCode-easy】Merge Two Sorted Lists

    思路:指针p用于串联怎个链表,比较两个指针的大小,连接较小的一个.如果一个链表到达链尾,连接另外一个链表余下来的所以节点. public ListNode mergeTwoLists(ListNode ...

  7. 复制一个带random指针的链表

    一个单链表,其中除了next指针外,还有一个random指针,指向链表中的任意某个元素.如何复制这样一个链表呢? 通过next来复制一条链是很容易的,问题的难点在于如何恰当地设置新链表中的random ...

  8. POJ2104 K-th Number (子区间内第k大的数字)【划分树算法模板应用】

    K-th Number Time Limit: 20000MS   Memory Limit: 65536K Total Submissions: 40920   Accepted: 13367 Ca ...

  9. JS判断数字、中文、小数位数

    1.JS判断数字 ①var value=$("#test").val(); if(!isNaN(value)){ alert("是数字"); }else{ al ...

  10. IDEAL葵花宝典:java代码开发规范插件 (maven helper)解决maven 包冲突的问题

    小编说到: 在我们日常开发当中常常我们会遇到JAR包冲突.找来找去还找不到很是烦人.那么所谓的JAR包冲突是指的什么那?JAR包冲突就是-引入的同一个JAR包却有好几个版本. 例如: 项目中引用了两个 ...