js jquery获取当前元素的兄弟级 上一个 下一个元素


Posted in Javascript onSeptember 01, 2015

var chils= s.childNodes;  //得到s的全部子节点

var par=s.parentNode;   //得到s的父节点

var ns=s.nextSbiling;   //获得s的下一个兄弟节点

var ps=s.previousSbiling;  //得到s的上一个兄弟节点

var fc=s.firstChild;   //获得s的第一个子节点

var lc=s.lastChile;   //获得s的最后一个子节点

JS获取节点父级,子级元素

先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。

JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当作DOM元素

<div id="test">
<div></div>
<div></div>
</div>

原生的JS获取ID为test的元素下的子元素。

可以用:

var a = docuemnt.getElementById("test").getElementsByTagName_r("div");

这样是没有问题的

此时a.length=2;

但是如果我们换另一种方法

var b =document.getElementByIdx_x("test").childNodes;

此时b.length 在IE浏览器中没问题,其依旧等于2,但是在FF浏览器中则会使4,是因为FF把换行也当做一个元素了。

所以,在此,我们就要做处理了,需遍历这些元素,把元素类型为空格而且是文本都删除。

function del_ff(elem){
var elem_child = elem.childNodes;
for(var i=0; i<elem_child.length;i++){
if(elem_child[i].nodeName == "#text" && !/\s/.test(elem_child.nodeValue))
{elem.removeChild(elem_child)
}
}
}

上述函数遍历子元素,当元素里面有节点类型是文本并且文本类型节点的节点值是空的。就把他删除。

nodeNames可以得到一个节点的节点类型,/\s/是非空字符在JS里的正则表达式。前面加!,则表示是空字符

test() 方法用于检测一个字符串是否匹配某个模式.语法是: RegExpObject.test(string)

如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。

nodeValue表示得到这个节点里的值。

removeChild则是删除元素的子元素。

之后,在调用子,父,兄,这些属性之前,调用上面的函数把空格清理一下就可以了

<div id="test">
<div></div>
<div></div>
</div>

<script>
function dom() {
var s= document.getElementByIdx_x("test");
del_ff(s);  //清理空格
var chils= s.childNodes; //得到s的全部子节点
var par=s.parentNode;  //得到s的父节点
var ns=s.nextSbiling;  //获得s的下一个兄弟节点
var ps=s.previousSbiling; //得到s的上一个兄弟节点
var fc=s.firstChild;  //获得s的第一个子节点
var lc=s.lastChile;  //获得s的最后一个子节点
}
</script>

下面介绍JQUERY的父,子,兄弟节点查找方法

jQuery.parent(expr)  找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(".class")

jQuery.parents(expr),类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父元素

jQuery.children(expr).返回所有子节点,这个方法只会返回直接的孩子节点,不会返回所有的子孙节点

jQuery.contents(),返回下面的所有内容,包括节点和文本。这个方法和children()的区别就在于,包括空白文本,也会被作为一个

jQuery对象返回,children()则只会返回节点

jQuery.prev(),返回上一个兄弟节点,不是所有的兄弟节点

jQuery.prevAll(),返回所有之前的兄弟节点

jQuery.next(),返回下一个兄弟节点,不是所有的兄弟节点

jQuery.nextAll(),返回所有之后的兄弟节点

jQuery.siblings(),返回兄弟姐妹节点,不分前后

jQuery.find(expr),跟jQuery.filter(expr)完全不一样。jQuery.filter()是从初始的jQuery对象集合中筛选出一部分,而jQuery.find()
的返回结果,不会有初始集合中的内容,比如$("p"),find("span"),是从<p>元素开始找<span>,等同于$("p span")

以上介绍就是本文关于js jquery获取当前元素的兄弟级 上一个 下一个元素,希望对大家有所帮助。

Javascript 相关文章推荐
js String对象中常用方法小结(字符串操作)
Jan 27 Javascript
Knockoutjs快速入门(经典)
Dec 24 Javascript
JS常用正则表达式总结
Nov 12 Javascript
Javascript简单实现面向对象编程继承实例代码
Nov 27 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
Jul 12 Javascript
js防阻塞加载的实现方法
Sep 09 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
Nov 30 Javascript
javascript 判断用户有没有操作页面
Oct 17 Javascript
为输入框加入数字js校验代码分享
Nov 02 Javascript
配置eslint规范项目代码风格
Mar 11 Javascript
基于JS实现计算24点算法代码实例解析
Jul 23 Javascript
jQuery实现简单三级联动效果
Sep 05 jQuery
JavaScript常用标签和方法总结
Sep 01 #Javascript
jquery简单实现带渐显效果的选项卡菜单代码
Sep 01 #Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
Sep 01 #Javascript
Jquery常用的方法汇总
Sep 01 #Javascript
基于jquery css3实现点击动画弹出表单源码特效
Aug 31 #Javascript
基于jQuery实现的向下滑动二级菜单效果代码
Aug 31 #Javascript
jquery实现可点击伸缩与展开的菜单效果代码
Aug 31 #Javascript
You might like
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
Python运行的17个时新手常见错误小结
2012/08/07 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
win10系统中安装scrapy-1.1
2016/07/03 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
2017/08/31 Python
Python实现调度算法代码详解
2017/12/01 Python
python爬取指定微信公众号文章
2018/12/20 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
Python list与NumPy array 区分详解
2019/11/06 Python
python随机模块random使用方法详解
2020/02/14 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
python调用摄像头的示例代码
2020/09/28 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
英语专业毕业生自我鉴定
2013/11/09 职场文书
档案接收函范文
2014/01/10 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
收入证明申请书
2015/06/12 职场文书
百年校庆感言
2015/08/01 职场文书
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL