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 相关文章推荐
IE6 hack for js 集锦
Sep 23 Javascript
js一维数组、多维数组和对象的混合使用方法
Apr 03 Javascript
javaScript数组迭代方法详解
Apr 14 Javascript
详解vue与后端数据交互(ajax):vue-resource
Mar 16 Javascript
详解webpack介绍&amp;安装&amp;常用命令
Jun 29 Javascript
微信JSAPI Ticket接口签名详解
Jun 28 Javascript
JavaScript 中的 this 简单规则
Sep 19 Javascript
微信小程序中实现手指缩放图片的示例代码
Mar 13 Javascript
Vue源码解析之Template转化为AST的实现方法
Dec 14 Javascript
从0到1搭建Element的后台框架的方法步骤
Apr 10 Javascript
vue中axios的二次封装实例讲解
Oct 14 Javascript
Vue-cli项目部署到Nginx服务器的方法
Nov 01 Javascript
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的String类代码
2010/04/20 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
Yii2实现让关联字段支持搜索功能的方法
2016/08/10 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
python将html转成PDF的实现代码(包含中文)
2013/03/04 Python
Python实现的几个常用排序算法实例
2014/06/16 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
使用Python对Access读写操作
2017/03/30 Python
Python语言的变量认识及操作方法
2018/02/11 Python
django中静态文件配置static的方法
2018/05/20 Python
python找出因数与质因数的方法
2019/07/25 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
python批量修改xml属性的实现方式
2020/03/05 Python
公司成立感言
2014/01/11 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
Nginx快速入门教程
2021/03/31 Servers
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL