jquery 查找元素
/************ 查找父元素 *************///closest()方法$("#mytd1").bind("click",function(){alert($(this).closest("table").attr("id")); //table1alert($(this).closest("tr").attr("id"));//mytr1console.info($(this).closest());//本身console.info($(this).closest("td"));//mytd1 返回元素本身。console.info($("td").closest("tbody"));//返回三个tbody/***官方解释:从元素本身开始,逐级向上级元素匹配,并返回最先匹配的元素。*closest会首先检查当前元素是否匹配,如果匹配则直接返回元素本身。如果不匹配则向上查找父元素,一层一层往上,直到找到匹配选择器的元素。如果什么都没找到则返回一个空的jQuery对象。*/});//parent()方法$("#mytd2").bind("click",function(){//alert($(this).html()); //$(this).html()是21 (this).attr("id")是mytd2alert($(this).parent().parent().parent().attr("id"));//.parent()是tr 第二个.parent是tbody。即使没有tbody标签,找到的也是tbody 第三个.parent()是tableconsole.info($("tr").parent());//返回三个dbody:dbody1,dbody2-1,dbody2-2.同理,如果改成td,则返回好多trconsole.info($("table").parent());//返回两个div:div1,div2。console.info($("table").parent("#divn"));//div1//document.write("第一个parent的id:" + $(this).parent().attr("id") + "。 第二个parent的id是:"+$(this).parent().parent().attr("id") + "。 第三个parent的id是:"+$(this).parent().parent().parent().attr("id"));/**parent官方解释:取得一个包含着所有匹配元素的唯一父元素的元素集合。**/});//parent("选择器") parents("选择器")$("#mytd3").bind("click",function(){$("p").parent("#div1").css("background", "yellow");//这里换成了p标签。不知道为什么用this找不到元素//原因:$(this).parent() 选择的为td3,在td3里面继续找div1自然找不到//alert($(this).parent("#div").attr("id"));//undefinedalert($(this).parents("div")[0].attributes.id.value);//div1 注意一个parent parentsalert($(this).parents("div")[1].attributes.id.value);//div0console.info($(this).parents("div"));//div1 div0 topdiv 向上找所有的div.可以一层一层向上找,返回所有符合条件的/** parents官方解释:* 取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选。* 语文不好,看着真心弄不懂~~~ 泪奔,见下面解释.*/});/************ 查找子元素 *************///查找table2的td元素 find()$("#sectd1").bind("click",function(){alert($("#table2").find("td").length);//和$("#table2 td")效果一样/* $("#table2").find("td").each(function(index,element){alert($(element).text());}); *///alert($("tr").find("td").length); //7console.info($("#table2 td"));console.info($("tr").find("td"));//返回所有匹配的td/**官方解释:* 搜索所有与指定表达式匹配的元素。*/});//children()$("#sectd2").bind("click",function(){alert($("#table2").children().children().children("td[id='sectd2']").html());//children() 是 tbody children()是 tr children("td[id='sectd2']")是tdconsole.info($("div[name='mydiv']").children());//p table1 p table2.返回name为mydiv的所有 子元素/**官方解释:*取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。*/});// js的 children[]$("#sectd3").bind("click",function(){var table = document.getElementById("table2");alert(table.children[0].children[2].children[0].innerHTML);//children[0] 是 tbody children[2]是 第三行的tr children[0]是tdconsole.info(table.children);//两个tbody2-1 tbody2-2console.info(table.children[0].children);//三个tr});
总结:
closest()
一层一层向上找,返回最先匹配上的元素。
$(this).closest("td")
$("td").closest("tbody")
因为td是多个元素,所有最先匹配上的tbody也是多个
parent()返回唯一父元素(即:向上只找一层)。如果选择器选择多个对象,则返回父元素数组。需要在数组里面继续选择,则使用parent("#id"),parent(".className")
什么是唯一父元素:td的父亲是tr,tr的父亲是tbody,tbody的父元素是table...
eg:
$("tr").parent() 一个或者多个tbody
$("table").parent("#div1");//div1。
parents()
一层一层向上找,返回所有匹配上的元素。
find()
$("#table2").find("td")和$("#table2 td")效果一样,这一句话应该足够了。
children()和parent()反之。
每一个元素的所有子元素的元素集合。
$("div[name='mydiv']").children()
p table1 p table2
children属性和jquery的children()类似,返回紧挨的下一级并列的子元素
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
对象都是this的话,可能更容易理解:
closest(“”) 一层一层向上,找到一个匹配就返回
parent() 紧挨自己的上一个元素
parents() 一层一层向上,找到所有的
find()
$("#table2").find("td") eg:$("#table2 td")
children() 紧挨自己的下一个元素
jquery 查找元素的更多相关文章
- jQuery 查找元素1
jQuery 查找元素1 1. id // 通过id查找 $('#id') 2. class <div class='c1'></div> // 通过class查找 $('.c ...
- jQuery 查找元素2
jQuery 查找元素2 :first <ul> <li>list item 1</li> <li>list item 2</li> < ...
- jquery查找元素
一:查找元素 * 所有元素 element 该名称的所有元素(p,input) #id 拥有指定id属性的元素 .class 拥有所有指定class属性的元素 selector1,selector2 ...
- jquery 查找元素,id,class
查找元素下的class 带有.pageactive的a标签 $('a.pageactive') 标签a和..pageactive不要有空格,有空格找不到 ======================= ...
- <<< Jquery查找元素、选择器使用方法总结
$("#myDiv"); //根据给定的ID匹配一个元素,用于搜索id 属性中给定的值,id属性必须是唯一的 $("div"); //根据给定的元素名匹配所有元 ...
- jquery 查找元素,并判断隐藏或显示
html <div class="panel-heading"> <h4 class="panel-title"> <a data ...
- jquery查找父元素、子元素(个人经验总结)
使用js或者jquery查找父元素.子元素经常遇到.可是用起来总容易混淆,这里统一总结了一下,以后用起来相信会方便好多 这里jquery向上查找父元素 用到的方法:closest() parents( ...
- Jquery下控制backgroundPosition位置的问题/jquery查找data id相等的元素
1:想通过控制backgroundPosition 来实现动态效果: $(this).animate({"background-positionY":-13},1); //但是火狐 ...
- jquery查找frameset框架内iframe的元素
老系统还幸存有过时的frameset框架,维护升级工作需要对其内部的iframe中的元素进行相关操作.使用jquery查找子iframe页面内的元素时,总找不到目标元素.后来发现少了contents ...
随机推荐
- Ubuntu Server 13.10 安装配置图解教程
一.Ubuntu Server 13.10系统安装 Ubuntu分为桌面版(desktop)和服务器版(Server),下面为大家介绍服务器版本Ubuntu Server 13.10的详细安装过程. ...
- C# 操作Excel大全
//引用Microsoft.Office.Interop.Excel.dll文件 //添加using using Microsoft.Office.Interop.Excel; using Excel ...
- 【云计算】jenkins,docker,mesos,marathon,k8s相关资料
参考资料: 基于Apache Mesos 构建高可靠,高可用的Jenkins CI:http://blog.csdn.net/ebay/article/details/43529401 Docker ...
- win10 当前操作环境不支持支付宝控件 完美解决办法
第一步,修改系统配置 在运行中输入“gpedit.msc”打开本地组策略编辑器: 打运行窗口的方法是:按win键+R (按下win键再按R键之后 同时松开) win键 即windows 的微标键 如 ...
- Android 使用ORMLite 操作数据库
参考:http://blog.csdn.net/cjjky/article/details/7096987 ormlite 方法查询:http://ormlite.com/javadoc/ormlit ...
- spring相关记录
1 国际化org.springframework.web.servlet.i18n.SessionLocaleResolver http://blog.csdn.net/kcai678/arti ...
- Android与WebView的同步和异步訪问机制
大家都知道.通过WebView,我们能够在Androidclient.用Web开发的方式来开发我们的应用. 假设一个应用就是单纯一个WebView.全部的逻辑都仅仅须要在网页上交互的话,那我们事实上就 ...
- 排序算法及其java实现
各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序 冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序 一.冒泡排序(BubbleSort) 1. 基本思 ...
- linux sheel重复执行上条命令
Linux系统下Shell重复执行上条命令的 4 种方法: 1.使用上方向键,并回车执行. 2.按 !! 并回车执行. 3.输入 !-1 并回车执行. 4.按 Ctrl+P 并回车执行.
- FastDFS简易概括
FastDFS是一个文件系统,可以部署在Linux上. 该文件系统具备高可用和负载均衡特性,还可以动态扩充容量. 此文件系统有两个服务组成:跟踪服务和存储服务,也就是说你必须部署了这两种服务,这个文件 ...